Я использую краткосрочный действующий 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,
}