Incluír e cargar unha lista de proxies nun proxecto Scrapy despregado
Inclúa un recurso de lista de proxies de Scrapy na distribución e cárgueo pola localización do paquete en lugar do directorio de traballo despregado.
Un ficheiro de proxies xunto a unha copia de desenvolvemento non está presente automaticamente no paquete despregado do rastrexador. Hai dúas tarefas: incluír os bytes na distribución e despois atopalos no paquete instalado.
Para un proxecto Setuptools con crawl_app/resources/proxies.txt dentro do seu paquete Python, unha entrada en pyproject.toml pode incluílo:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Combine isto coa configuración de paquete existente do proxecto. Outro backend de compilación ten a súa propia interface de inclusión de datos.
Para o middleware que pode consumir cadeas de endpoint, Python 3.11+ pode ler o recurso do paquete directamente:
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()]
Utilice o nome real do paquete e valide o formato de URL esperado no lector. Para datos de endpoint públicos distribuíbles, utilice enderezos da lista de proxies gratuítos no protocolo e no formato de URL que espera o middleware. A busca non depende do directorio de traballo actual do despregamento.
Un axuste PROXY_LIST de terceiros pode requirir unha ruta do sistema de ficheiros en lugar destas cadeas. Ao usar importlib.resources.as_file para esa interface, manteña o seu contexto aberto mentres o middleware necesite o ficheiro extraído. Devolver unha ruta temporal despois de pechar o contexto pode perder o recurso.
Manteña as listas de produción con credenciais no almacenamento de segredos ou configuración previsto para o despregamento. Os datos do paquete son axeitados para datos de endpoint distribuíbles, non para supoñer que todo o empaquetado co código permanece privado.