Incluir e carregar uma lista de proxies num projeto Scrapy implantado
Inclua um recurso de lista de proxies do Scrapy na distribuição e carregue-o pela localização do pacote em vez do diretório de trabalho implantado.
Um arquivo de proxies ao lado de uma cópia de desenvolvimento não está automaticamente presente no pacote implantado do rastreador. Há duas tarefas: incluir os bytes na distribuição e depois encontrá-los no pacote instalado.
Para um projeto Setuptools com crawl_app/resources/proxies.txt dentro do pacote Python, uma entrada em pyproject.toml pode incluí-lo:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Combine isso com a configuração de pacote existente do projeto. Outro backend de build tem sua própria interface de inclusão de dados.
Para middleware que pode consumir cadeias de endpoint, o Python 3.11+ pode ler o recurso do pacote diretamente:
from importlib.resources import files
text = files('crawl_app').joinpath('resources', 'proxies.txt').read_text(
encoding='utf-8'
)
proxy_urls = [line.strip() for line in text.splitlines() if line.strip()]
Use o nome real do pacote e valide o formato de URL esperado no leitor. Para dados de endpoint públicos distribuíveis, use endereços da lista de proxies gratuitos no protocolo e formato de URL esperados pelo middleware. A consulta não depende do diretório de trabalho atual da implantação.
Uma configuração PROXY_LIST de terceiros pode exigir um caminho do sistema de arquivos em vez dessas cadeias. Ao usar importlib.resources.as_file para essa interface, mantenha seu contexto aberto enquanto o middleware precisar do arquivo extraído. Retornar um caminho temporário depois de fechar o contexto pode perder o recurso.
Mantenha listas de produção com credenciais no armazenamento de segredos ou configuração previsto para a implantação. Dados de pacote são adequados para dados de endpoint distribuíveis, não para supor que tudo o que é empacotado com código permanece privado.