前言
想爬取网页文本数据,结果发现获取的网页是乱码,这里通过导入chardet来检索网页文本的编码
1.引入库
代码如下(示例):
import requests
from bs4 import BeautifulSoup
import chardet
2.具体实现
代码如下(示例):
def get_webpage_text(url):
try:
# 发送 HTTP 请求获取网页内容
response = requests.get(url)
response.raise_for_status() # 如果请求不成功,抛出异常
# 使用 chardet 检测编码
encoding = chardet.detect(response.content)['encoding']
# 使用 BeautifulSoup 解析 HTML
soup = BeautifulSoup(response.content, 'html.parser', from_encoding=encoding)
# 获取网页的文本内容
text = soup.get_text()
return text
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
return None
# 替换为你要爬取的网页的 URL
url_to_scrape = "http://***.html"
# 调用函数获取文本内容
webpage_text = get_webpage_text(url_to_scrape)
# 打印文本内容
if webpage_text:
print(webpage_text)
总结
一般乱码都是因为编码错误或者加密的原因,可以尝试多种方法来解决。