Как изменить IP прокси в scrapy, когда у прокси ip есть короткое допустимое время - PullRequest
0 голосов
/ 17 января 2020

Я использую краткосрочный действующий IP прокси в Middleware для сканирования данных веб-страницы. Когда истек срок действия IP, я получил сообщение ниже. Я думаю, что в методе process_response установить новый ip прокси, но он не работает (prcess_resonse не вызывается). Что не так и как сделать? Спасибо

2020-01-17 17:00:48 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://xxxx/co
s): Connection was refused by other side: 10061: 由于目标计算机积极拒绝,无法连接。.
class IPProxyMiddleware(object):

    def fetch_proxy(self):
        # some way to get short term valid proxy IP
        return '112.85.45.178:28220'

    def process_request(self, request, spider):
        proxy_data = self.fetch_proxy()
        if proxy_data:
            current_proxy = f'http://{proxy_data}'
            request.meta['proxy'] = current_proxy

    def process_response(self, request, response, spider):
        ## check retry and 10061 error
        ## set new proxy IP
        return request

settings.py

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': None,
    'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': None,
    'my_side.middlewares.IPProxyMiddleware': 100,
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...