如何处理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

回到顶部