[我在抓取网站时收到来自服务器的302响应:
2014-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,
}
但是我仍然被重定向。为了使此中间件正常工作,这是我要做的吗?我想念什么吗?
忘记了这种情况下的中间件,这可以解决问题:
我将此重定向代码添加到我的middleware.py文件中,并将其添加到settings.py中:
使用How to avoid redirection of the webcrawler to the mobile edition?时,重定向存在无限循环问题。我设法通过设置HTTPCACHE_ENABLED = True
来避免此问题。
您可以通过在settings.py中将HTTPCACHE_IGNORE_HTTP_CODES = [301,302]
设置为False来禁用RedirectMiddleware
无法解释的REDIRECT_ENABLED
响应,例如从Web浏览器中加载良好的页面重定向到首页或某个固定页面,通常指示针对不良活动的服务器端措施。