Uma aranha pode usar o proxy esperado em scrapy crawl e ir diretamente quando é lançada por um script Python. Verifique como esse script constrói as suas definições antes de alterar o servidor proxy.

Para um projeto Scrapy existente e a sua aranha registada:

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()

Substitua catalog pelo nome da aranha do projeto. O projeto tem de ser detetável através do seu scrapy.cfg, ou através de um SCRAPY_SETTINGS_MODULE bem definido que aponte para um módulo de definições importável.

Construir apenas CrawlerProcess() não importa o ficheiro de definições do projeto só porque o script também importa uma classe de aranha. Por isso, um middleware personalizado ativado por DOWNLOADER_MIDDLEWARES pode faltar nessa execução.

Carregar as definições fornece os componentes configurados; não inventa um endereço de proxy. O middleware de proxy HTTP do Scrapy continua a precisar do seu proxy de ambiente habitual ou de um valor request.meta['proxy'] explícito. Verifique se HTTPPROXY_ENABLED não o desativou. Para um rastreio permitido de páginas públicas, a lista de proxies HTTP oferece candidatos para um valor de proxy HTTP fornecido através desses metadados ou do ambiente.

Compare as definições carregadas e o middleware ativo do lançador com a execução na linha de comandos. Se coincidirem, continue com os metadados de proxy do pedido escolhido e o erro de transporte real.

Artigos relacionados