scrapy采集—爬取中文乱码,gb2312转为utf-8

有段时间没怎么使用scrapy了,最近采集一个网页,发现网页编码是gb2312,

一开始就取搜索了下,发现各种操作都有,有在settings中设置  

# FEED_EXPORT_ENCODING = 'utf-8'
FEED_EXPORT_ENCODING = 'GB2312'

有在spider中设置response.body的encoding的,而我用的是response.xpath,到这里发现问题也还是不能够解决,

最后发现 在Download MinddleWares中有个process_response方法,在下载器中间件中将返回的请求数据修改编码即可完成

response = HtmlResponse(url=response.url, body=response.body, encoding='utf-8')  
return response

 

posted @ 2022-11-24 12:30  kuba8  阅读(344)  评论(0编辑  收藏  举报