有段時間沒怎么使用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