python爬虫中文出现乱码问题

python爬虫中文出现乱码问题

现象

在这里插入图片描述

解决

方法一:直接指定res.encoding

import requests

url = "http://search.51job.com"
res = requests.get(url)
res.encoding = "gbk"
html = res.text
print(html)

方法二:通过res.apparent_encoding属性指定

import requests

url = "http://search.51job.com"
res = requests.get(url)
res.encoding = res.apparent_encoding
html = res.text
print(html)

方法三:通过编码、解码的方式

import requests

url = "http://search.51job.com"
res = requests.get(url)
html = res.text.encode('iso-8859-1').decode('gbk')
print(html)

参考链接

https://cloud.tencent.com/developer/article/1429372

Python爬虫项目中,遇到汉字字体乱码通常有以下几个原因: ### 1. 编码问题 在处理网页内容时,网页数据可能是以特定的编码格式存储的,如UTF-8、GBK等。如果不正确地指定解码方式,就会导致显示出来的文本出现乱码。 **解决方法**: - 确保读取网页内容前设置正确编码格式。例如,如果已知网页采用的是GB2312编码,可以使用`requests`库的`.encode('gb2312')`或`.decode('gb2312')`方法处理;对于不确定编码的情况,可以尝试多种常见的编码格式。 - 使用`chardet`库自动检测网页编码: ```python import chardet # 读取网页内容并检测编码 with open('example.html', 'rb') as file: raw_data = file.read() encoding_detected = chardet.detect(raw_data) content_decoded = raw_data.decode(encoding_detected['encoding']) ``` ### 2. 输出文件的编码设置 当将网页内容保存到本地文件或输出时,确保使用的字符编码与保存目标兼容。通常,UTF-8是最广泛支持的编码格式。 **解决方法**: - 将解析后的字符串通过适当的编码保存到文件中: ```python with open('output.txt', 'w', encoding='utf-8') as f: f.write(content_decoded) ``` ### 3. 控制台打印的编码设置 在控制台打印含有中文的字符串时,同样需要设置正确的打印编码。 **解决方法**: - 直接使用`print()`函数输出字符串时,默认会按照当前系统的终端设置来处理编码,一般不需要额外操作。 ### 4. 字符集问题 网络请求或HTTP响应本身可能存在字符集声明错误,导致数据接收错误。 **解决方法**: - 检查HTTP头是否包含正确的字符编码信息,并据此调整解码策略。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值