我正在使用scrapy抓取特定站点。几次请求后,站点尝试将我的请求重定向到我自己的IP。此时,我希望使用login
函数更改我的凭据。但是我还是无法做到。我尝试过errback
来调用login
,但是我不知道如何正确触发此类重定向的错误。有人可以为此提供解决方案吗?
谢谢!
答案 0 :(得分:0)
您可以在middleware
中处理回复确保已在settings.py
或Spider中启用中间人功能,以便在Spider中做到这一点
class MySpider(scrapy.Spider):
name = "spider_name_here"
custom_settings = {
'DOWNLOADER_MIDDLEWARES': {
'YOUR_PROJECT_FOLDER.middlewares.MyMiddleware': 300,
},
}
middleware.py
class MyMiddleware(object):
def process_request(self, request, spider):
pass
def process_response(self, request, response, spider):
if response.status in [403, or any response]:
req = request.copy()
return request
else:
return response