Как сделать так, чтобы scrap повторил URL, если он получил 307 в коде ответа? - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь очистить https://zillow.com с помощью прокси.Но для большинства URL-адресов меня перенаправляют на страницу проверки с помощью капчи.Например,

Я хочу получить: https://www.zillow.com/homes/90001_rb/

Но меня перенаправляют на https://www.zillow.com/captchaPerimeterX/?url=%2fhomes%2f90001_rb%2f2_p%2f&uuid=6da17b30-59a7-11e8-861d-5999f3314703&vid=

Следовательно, я хочу, чтобы скребок повторил те URL-адреса, для которыхон получает HTTP-код ответа 307. Я попытался добавить приведенный ниже код в settings.py.

RETRY_HTTP_CODES = [500, 503, 504, 400, 408, 307, 403]
RETRY_TIMES=5  
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
'real_estate.middlewares.RealEstateDownloaderMiddleware':100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,
}  

Но это не сработало.Я не знаю, что я делаю не так.Так что, если кто-нибудь может научить меня, как это сделать правильно, это было бы очень полезно.Благодарю.

1 Ответ

0 голосов
/ 17 мая 2018

Возможно, вам также понадобится добавить следующий список:

handle_httpstatus_list = [500, 503, 504, 400, 408, 307, 403]

, чтобы scrap мог сначала обработать эти Http-коды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...