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.

Artigos relacionados