Python3.5+requests 爬取网站遇到中文乱码怎么办(???è????????è?ˉ?o??′2? ????é?¢)
import requests
from bs4 import BeautifulSoupurl = 'http://quote.eastmoney.com/stocklist.html'
user_agent = 'Mozilla/4.0 (compatible;
MSIE 5.5;
Windows NT)'
headers = {'User-Agent': user_agent}
req = requests.get(url, headers=headers)
req.encoding = 'utf-8'
bs = BeautifulSoup(req.content, 'html.parser')# type: BeautifulSoup
quotesearch = bs.find('div', attrs={'id': 'quotesearch'})
print(quotesearch)
运行以上代码,显示结果如下:
???31é·Y(300737)
°?·éêy?Y(300738)
?÷??μ??·(300739)
óù?ò??(300740)
?a±|1é·Y(300741)
1.解决思路一:查看网页的编码方式
【Python3.5+requests 爬取网站遇到中文乱码怎么办(???è????????è?ˉ?o??′2? ????é?¢)】F12打开网站地址,查看最上方head,发现编码方式为‘gb2312’(charset=gb2312),修改代码第八行req.encoding = 'gb2312',重新运行代码。运行结果未改变,仍有乱码。
2.解决思路二:修改代码第九行bs = BeautifulSoup(req.text, 'html.parser'),将req.content改为req.text,运行代码,结果正常,无乱码。
原理:
resp.text返回的是Unicode型的数据。 resp.content返回的是bytes型也就是二进制的数据
因此如果我们想读取解析文本数据时,使用的是response.text。而想读取解析图片文件,往往使用的就是response.content
转载自:https://blog.csdn.net/weixin_41931602/article/details/81181946
推荐阅读
- 使用协程爬取网页,计算网页数据大小
- 【亲测好用】高逼格配色网站推荐
- 工具分享|5个有趣好玩的网站,拒绝无聊!
- 1040表格和W-2表格
- 和知网差不多的论文网站有哪些()
- Python实战计划学习笔记(9)为大规模爬取准备
- 8、Flask构建弹幕微电影网站-搭建后台页面-密码修改、主页控制面板
- 爬取网易云音乐
- 元宵节给网站挂个灯笼
- 对一些整理IT网站的文章做一个归纳集合(随时更新)