当前位置: 首页 > news >正文

无锡网站建设技术便民信息微信平台推广

无锡网站建设技术,便民信息微信平台推广,中山发布微信公众号,做自媒体需要关注什么网站使用chardet库自动检测requests所获得html文档的编码 使用requests和BeautifulSoup库获取某个页面带来的乱码问题 使用requests配合BeautifulSoup库,可以轻松地从网页中提取数据。但是,当网页返回的编码格式与Python默认的编码格式不一致时&#xff0c…

使用chardet库自动检测requests所获得html文档的编码

使用requestsBeautifulSoup库获取某个页面带来的乱码问题

使用requests配合BeautifulSoup库,可以轻松地从网页中提取数据。但是,当网页返回的编码格式与Python默认的编码格式不一致时,就会导致乱码问题。

以如下代码为例,它会获取到一段乱码的html:

import requests
from bs4 import BeautifulSoup# 目标 URL
url = 'https://finance.sina.com.cn/realstock/company/sh600050/nc.shtml'# 发送 HTTP GET 请求
response = requests.get(url)# 检查请求是否成功
if response.status_code == 200:# 获取网页内容html_content = response.text# 使用 BeautifulSoup 解析 HTML 内容soup = BeautifulSoup(html_content, 'html.parser')# 要查找的 IDtarget_id = 'hqDetails'# 查找具有特定 ID 的标签element = soup.find(id=target_id)if element:# 获取该标签下的 HTML 内容element_html = str(element)print(f"ID 为 {target_id} 的 HTML 内容:\n{element_html}\n")# 查找该标签下的所有 table 元素tables = element.find_all('table')if tables:for i, table in enumerate(tables):print(f"第 {i+1} 个 table 的 HTML 内容:\n{table}\n")else:print(f"ID 为 {target_id} 的标签下没有 table 元素")else:print(f"未找到 ID 为 {target_id} 的标签")
else:print(f"请求失败,状态码: {response.status_code}")

非英语字符乱码
我们可以通过通过手工指定代码的方式来解决这个问题,例如在response.status_code == 200后,通过response.encoding = 'utf-8'指定代码,又或通过soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8') 来指定编码。

然而,当我们获取的html页面编码不确定的时候,有没有更好的办法让编码监测自动执行呢?这时候chardet编码监测库是一个很好的帮手。

使用 chardet 库自动检测编码

chardet 是一个用于自动检测字符编码的库,可以更准确地检测响应的编码。

安装chardet

pip install chardet

代码应用示例

import requests
from bs4 import BeautifulSoup
import chardet# 目标 URL
url = 'https://finance.sina.com.cn/realstock/company/sh600050/nc.shtml'# 发送 HTTP GET 请求
response = requests.get(url)# 检查请求是否成功
if response.status_code == 200:# 自动检测字符编码detected_encoding = chardet.detect(response.content)['encoding']# 设置响应的编码response.encoding = detected_encoding# 获取网页内容html_content = response.text# 使用 BeautifulSoup 解析 HTML 内容soup = BeautifulSoup(html_content, 'html.parser')# 要查找的 IDtarget_id = 'hqDetails'# 查找具有特定 ID 的标签element = soup.find(id=target_id)if element:# 获取该标签下的 HTML 内容element_html = str(element)print(f"ID 为 {target_id} 的 HTML 内容:\n{element_html}\n")# 查找该标签下的所有 table 元素tables = element.find_all('table')if tables:for i, table in enumerate(tables):print(f"第 {i+1} 个 table 的 HTML 内容:\n{table}\n")else:print(f"ID 为 {target_id} 的标签下没有 table 元素")else:print(f"未找到 ID 为 {target_id} 的标签")
else:print(f"请求失败,状态码: {response.status_code}")

解决了中文乱码问题
可见,通过使用chardet库,可以有效实现代码的自动检测。

http://www.yidumall.com/news/26454.html

相关文章:

  • 网站建设公司主营业务网站推广代理
  • 网络建站一般多少钱怎么在百度上设置自己的门店
  • 做网站需要的法律知识网站运营seo实训总结
  • 怎样查看网站开发后台语言关联词有哪些
  • 那一个网站可以教做甜品的域名注册需要多少钱?
  • 外网专门做钙片的网站推广的渠道和方法有哪些
  • app开发的流程seo外链技巧
  • centeros7 安装wordpress沈阳关键词优化报价
  • 动态网站开发软件全网营销推广
  • 坪山网站建设多少钱品牌seo培训
  • 网站开发常用单词百度推广怎么开户
  • 苏州html网站模板seo大全
  • 深圳网上办事大厅官网seo研究中心好客站
  • 成都建设网站的公司哪家好关键词排名点击软件怎样
  • 网站建设服务器的选择方式包括哪些100条经典广告语
  • 网站推广的基本手段广东优化疫情防控措施
  • 浙江直播网站建设网络营销推广总结
  • 网站开发建设步骤营销型网站建设方案
  • 设计公司的网站建设产品软文是什么
  • 东莞莞城网站建设北京网络营销外包公司哪家好
  • 网站建设网站需要什么软件有哪些搜索引擎排名查询
  • 网站建设白痴软件怎么样建立自己的网站
  • 网站开发后端论文网络推广赚钱平台有哪些
  • seo优化方案案例seo优化包括什么
  • 连锁销售公司网站的建设方案店铺推广引流的方法
  • 网站建设发生的成本如何记账企业站seo价格
  • python wordpress建站seo快速排名案例
  • 吕梁网站开发抖音搜索排名优化
  • 什么网站做电器出租网推拉新app推广接单平台
  • 网站怎么seo网站外链代发