Proxies por requisição com o middleware de proxy HTTP do Scrapy
Use os metadados de requisição do Scrapy e seu middleware de proxy antes de copiar um middleware de autenticação personalizado antigo para um crawler.
O middleware de proxy HTTP do Scrapy lê um proxy dos metadados da requisição:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Substitua o endpoint da documentação e mantenha o middleware ativado. A lista de proxies HTTP oferece candidatos públicos para a URL desta requisição. Isso seleciona a rota da requisição; um pool de proxies precisa de lógica de seleção separada.
A autenticação segue o endpoint selecionado
O middleware integrado lida com credenciais fornecidas por meio de sua URL de proxy suportada e do cabeçalho de autorização associado. Escape os caracteres reservados da URL e evite registrar essa URL.
Um middleware separado não deve reter um cabeçalho Basic para o proxy anterior depois que o endpoint muda. Deixe uma única camada gerenciar a rota e suas credenciais juntas.
Ordem de seleção e padrões
Se um middleware de download personalizado escolher o proxy, execute-o antes que o middleware de proxy integrado processe a requisição. Verifique a ordem e a API da versão instalada; importações scrapy.contrib obsoletas pertencem a versões mais antigas.
O ambiente do processo também pode fornecer padrões específicos de esquema. Para uma requisição deliberadamente direta, use o comportamento especial documentado dos metadados proxy: uma chave ausente não significa necessariamente acesso direto.
Inspecione o resultado real. Um 407 diz respeito à autenticação do proxy, enquanto um limite de taxa ou uma negação de acesso do site podem chegar depois que a rota funcionou corretamente.