如何在scrapy中处理重定向?

时间:2018-07-15 20:17:07

标签: python web-scraping scrapy

我正在使用scrapy抓取特定站点。几次请求后,站点尝试将我的请求重定向到我自己的IP。此时,我希望使用login函数更改我的凭据。但是我还是无法做到。我尝试过errback来调用login,但是我不知道如何正确触发此类重定向的错误。有人可以为此提供解决方案吗?

谢谢!

1 个答案:

答案 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