赞
踩
使用Python爬虫爬取一些中文网页的内容时,有时会出现爬取内容为乱码的情况,不管是采用正则表达式还是采用xpath提取内容,结果都一样为乱码,遇到这种问题怎么办?
源程序代码如下:
import requests
from lxml import etree
headers={‘User-Agent’:‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36’}
url=‘http://www.doupoxs.com/doupocangqiong/1.html’
res=requests.get(url,headers=headers)
tree=etree.HTML(res.text)
title=tree.xpath(’//div[@class=“entry-tit”]/h1/text()’)
print(title)
该爬虫程序没有错误,但打印出来的title内容为乱码。尝试过多种解决方法后,终于解决了此问题。
现总结如下几点,供遇到相关问题的同学参考:
1、出现这种乱码问题,可以肯定是由于编码问题引起的;
2、网上和某些专业书上提到的在文件开头添加编码格式注释的解决办法无效;
3、成功有效的解决方案是:将通过requests.get得到的网页源代码指定为utf-8的编码格式。具体做法:在语句res=requests.get(url,headers=headers)后面添加一句:res.encoding=‘utf-8’。然后再进行解析和提取就没有问题了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。