I am receiving a 302 response from a server while scrapping a website:
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>
I want to send request to GET urls instead of being redirected. Now I found this middleware:
https://github.com/scrapy/scrapy/blob/master/scrapy/contrib/downloadermiddleware/redirect.py#L31
I added this redirect code to my middleware.py file and I added this into settings.py:
DOWNLOADER_MIDDLEWARES = {
'street.middlewares.RandomUserAgentMiddleware': 400,
'street.middlewares.RedirectMiddleware': 100,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
}
But I am still getting redirected. Is that all I have to do in order to get this middleware working? Do I miss something?
DOWNLOADER_MIDDLEWARES_BASE
says thatRedirectMiddleware
is already enabled by default, so what you did didn't matter.How? The server responds with
302
on yourGET
request. If you doGET
on the same URL again you will be redirected again.What are you trying to achieve?
If you want to not be redirected, see these questions:
I had an issue with infinite loop on redirections when using
HTTPCACHE_ENABLED = True
. I managed to avoid the problem by settingHTTPCACHE_IGNORE_HTTP_CODES = [301,302]
.Forgot about middlewares in this scenario, this will do the trick:
That said, you will need to include meta parameter when you yield your request: