Python爬取中文内容时乱码怎么办

Python爬取中文内容时乱码怎么办

使用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’。然后再进行解析和提取就没有问题了。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值