Configurando o middleware do proxy Scrapy para girar em cada solicitação

Essa pergunta necessariamente vem de duas formas, porque não conheço o melhor caminho para uma solução.

Um site que estou rastreando leva-me a uma página redirecionada "bloqueada pelo usuário" com frequência, mas a frequência (por solicitações / hora) parece aleatória e parece ter uma lista negra bloqueando muitos dos proxies "abertos" que estou usando através do Proxymesh. Assim...

Quando Scrapy recebe um "Redirecionar" para sua solicitação (por exemplo,DEBUG: Redirecting (302) to (GET http://.../you_got_blocked.aspx) from (GET http://.../page-544.htm)), ele continua tentando acessar a página-544.htm ou continua na página-545.htm e perde para sempre na página-544.htm? Se "esquece" (ou conta como visitado), existe uma maneira de dizer a ele para continuar tentando novamente a página? (Se fizer isso naturalmente, sim, e é bom saber ...)

Qual é a solução mais eficiente?

(a) O que estou fazendo atualmente: usando um Proxy rotativo por proxy por meio da variável de ambiente http_proxy, que parece girar proxies com frequência suficiente para, pelo menos com bastante regularidade, passar pelos redirecionamentos do site de destino. (Desvantagens: os proxies abertos demoram a pingar, existem muitos deles, o proxymesh acabará por começar a me cobrar por gig e 10 gig, eu sónecessidade eles rotacionam quando redirecionados, não sei com que frequência ou em que gatilho eles rodam, e o que precede: não sei se as páginas das quais estou sendo redirecionado estão sendo enfileiradas pelo Scrapy ...) ( Se o Proxymesh estiver alternando em cada solicitação, aceitarei pagar custos razoáveis.)

(b) faria sentido (e seria simples) usar o middleware para selecionar novamente um novo proxy em cada redirecionamento? E em cada solicitação? Isso faria mais sentido através de algo mais como TOR ou Proxifier? Se isso é relativamente simples, como eu o configuraria? Eu li algo assim em alguns lugares, mas a maioria está desatualizada com links quebrados ou comandos Scrapy obsoletos.

Para referência, eu tenho o middleware atualmente configurado para o Proxy Mesh (sim, estou usando a variável de ambiente http_proxy, mas sou fã de redundância quando se trata de não ter problemas). Então é isso que eu tenho atualmente, caso isso importe:

 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

questionAnswers(1)

yourAnswerToTheQuestion