Настройка прокси промежуточного ПО Scrapy для поворота при каждом запросе

Этот вопрос обязательно приходит в двух формах, потому что я неНе знаю лучшего пути к решению.

Сайт ям ползет пинает меня на переадресациюПользователь заблокирован " страница часто, но частота (по запросам / времени) кажется случайной, и у них, похоже, есть черный список, блокирующий многие "открыть" список прокси ям через проксимеш. Так...

Когда Scrapy получает "Перенаправление» на его запрос (например,DEBUG: Redirecting (302) to (GET http://.../you_got_blocked.aspx) from (GET http://.../page-544.htm)), он продолжает пытаться добраться до page-544.htm, или он переходит на page-545.htm и навсегда проигрывает на page-544.htm? Если оно "забывает» (или считается, что он посещен), есть ли способ заставить его повторять эту страницу? (Если он делает это естественно, то да, и это полезно знать ...)

Какое самое эффективное решение?

(а) Что яВ настоящее время я делаю: используя прокси-сервер, вращающий Прокси через переменную среды http_proxy, которая, кажется, вращает прокси достаточно часто, чтобы по крайней мере довольно регулярно проходить через целевой сайт. 'с перенаправлениями. (Недостатки: открытые прокси медленно пингуются, их очень много, proxymesh в конечном итоге начнёт взимать плату за каждый концерт за 10 гигов, я тольконеобходимость их вращать при перенаправлении, я нене знаю, как часто или по какому курку они вращаются, и выше: я нене знаю, если я страницыменя перенаправляют из Scopy в очередь ...) (Если Proxymesh вращается при каждом запросе, то ям хорошо с оплатой разумных расходов.)

(б) Имеет ли смысл (и быть простым) использовать промежуточное ПО для повторного выбора нового прокси-сервера при каждом перенаправлении? Как насчет каждого запроса? Будет ли это иметь смысл через что-то еще, например, TOR или Proxifier? Если это относительно просто, как бы я это настроил? Я'Мы читали что-то подобное в нескольких местах, но большинство устарело из-за неработающих ссылок или устаревших команд Scrapy.

Для справки, у меня уже есть промежуточное ПО для Proxy Mesh (да, ям с помощью переменной среды http_proxy, но яя фанат избыточности, когда дело доходит до того, чтобы не попадать в неприятности). Вот что у меня есть для этого сейчас, на случай, если это имеет значение:

 class ProxyMiddleware(object):
  def process_request(self, request, spider):
    request.meta['proxy'] = "http://open.proxymesh.com:[port number]"

    proxy_user_pass = "username:password"
    encoded_user_pass = base64.encodestring(proxy_user_pass)
    request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass

Ответы на вопрос(1)

Ваш ответ на вопрос