如何处理302重定向中的scrapy
抓取网站时,我从服务器收到302响应:
2019-04-01 21:31:51+0200 [ahrefs-h] DEBUG: Redirecting (302) to <GET http://www.domain.com/Site_Abuse/DeadEnd.htm> from <GET http://domain.com/wps/showmodel.asp?Type=15&make=damc&a=664&b=51&c=0>
我想将请求发送到GET网址,而不是被重定向。现在我找到了这个中间件:
https://github.com/scrapy/scrapy/blob/master/scrapy/contrib/downloadermiddleware/redirect.py#L31
我将此重定向代码添加到了middleware.py文件中,并将其添加到settings.py中:
DOWNLOADER_MIDDLEWARES = { 'street.middlewares.RandomUserAgentMiddleware': 400,
'street.middlewares.RedirectMiddleware': 100,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
}
但是我仍然被重定向。为了使该中间件正常工作,这是我要做的吗?
回答:
在这种情况下,忘记了中间件,就可以解决问题:
meta = {'dont_redirect': True,'handle_httpstatus_list': [302]}
也就是说,在产生请求时,你将需要包含meta参数:
yield Request(item['link'],meta = { 'dont_redirect': True,
'handle_httpstatus_list': [302]
}, callback=self.your_callback)
以上是 如何处理302重定向中的scrapy 的全部内容, 来源链接: utcz.com/qa/435060.html