scrapy--(failed 3 times): [<twisted.python.failure.Failure twisted.web._newclient.ParseError

问题:
[scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302)
(failed 3 times): [<twisted.python.failure.Failure twisted.web._newclient.ParseError: (‘wrong number of parts’, b’’)>]

理论知识:
1、在使用Scrapy框架中URl被重定向
2、根据 HTTP标准 ,返回值为200-300之间的值为成功的resonse。
3、如果想处理在这个范围之外的response,可以通过 spider的 handle_httpstatus_list 属性或HTTPERROR_ALLOWED_CODES 设置来指定spider能处理的response返回值。

解决1:
在爬虫文件的 settings.py文件里添加:

HTTPERROR_ALLOWED_CODES = [301]

解决2:
在爬虫文件中添加headers
该headers要添加自己的值,且cookie添加前,要先登录一下爬取的网站。
bibi为例,我已经登录成功了 F12–》Network --》刷新—》Header
在这里插入图片描述

herders={
	'user-agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36',
	'cookie':' MUID=0D619CB8AF6860562CB38CC9AE466165; MUIDB=0D619CB8AF6860562CB38CC9AE466165; _EDGE_V=1; SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=FE70CC4A14BD454AAF0D558AA801761A&dmnchg=1; _tarLang=default=en; _TTSS_IN=hist=WyJ6aC1IYW5zIiwiYXV0by1kZXRlY3QiXQ==; _TTSS_OUT=hist=WyJlbiJd;'
}

解决3:
模拟人查询方式方式,点击时间不同,利用随机数,在sittings.py中设置

import random
DOWNLOAD_DELAY = random.uniform(1,3)  #延迟1秒

猜你喜欢

转载自blog.csdn.net/weixin_45044349/article/details/121093318