欢迎光临散文网 会员登陆 & 注册

Scrapy 返回中文乱码

2022-08-17 17:57 作者:限量版范儿  | 我要投稿

对于scrpay乱码的数据,刚开始在settings.py中配置了FEED_EXPORT_ENCODING = 'utf-8',发现还是不起作用,

于是想到了中间件,在请求返回的时候,对返回的内容进行转码处理

def process_response(self, request, response, spider):        # Called with the response returned from the downloader.        # 修改页面编码为指定的utf-8格式        # import pdb        # pdb.set_trace()        # print("当前的编码是:", response.encoding)        # # return        # # TextResponse(url=response.url,status=200,request=request,body=self.browser.page_source.encode('utf-8'))        response = HtmlResponse(            url=response.url, status=200, request=request, body=response.body,            encoding='utf-8')        return response

 在spider的custom_settings中的 DOWNLOADER_MIDDLEWARES中开启这个中间件即可对返回内容进行转码操作

custom_settings = {        'ITEM_PIPELINES': {'AggProject.pipelines.AggprojectPipeline': 100},        'DOWNLOADER_MIDDLEWARES': {            'AggProject.middlewares.ZyZhanDownloaderMiddleware': 543,        },        'DEFAULT_REQUEST_HEADERS': {            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',            'Accept-Encoding': 'gzip, deflate',            'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,en-GB;q=0.6',            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'        },        'REDIRECT_ENABLED': True,        'COOKIES_ENABLED': False,        'DOWNLOAD_DELAY': 1.5,        'CONCURRENT_REQUESTS': 6,        'RETRY_ENABLED': True,        'RETRY_TIMES': 2,        'DEPTH_LIMIT': 3    }

链接:https://www.dianjilingqu.com/489522.html

Scrapy 返回中文乱码的评论 (共 条)

分享到微博请遵守国家法律