Un fitxer de proxys al costat d'una còpia de desenvolupament no és automàticament present al paquet desplegat del rastrejador. Hi ha dues feines: incloure els bytes a la distribució i, després, trobar-los al paquet instal·lat.

Per a un projecte Setuptools amb crawl_app/resources/proxies.txt dins del seu paquet Python, una entrada a pyproject.toml pot incloure'l:

[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]

Combineu-ho amb la configuració de paquet existent del projecte. Un altre backend de compilació té la seva pròpia interfície d'inclusió de dades.

Per al middleware que pot consumir cadenes d'endpoint, Python 3.11+ pot llegir el recurs del paquet directament:

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()]

Utilitzeu el nom real del paquet i valideu el format d'URL esperat al lector. Per a dades d'endpoint públiques distribuïbles, utilitzeu adreces de la llista de proxys gratuïts en el protocol i el format d'URL que espera el middleware. La cerca no depèn del directori de treball actual del desplegament.

Un paràmetre PROXY_LIST de tercers pot requerir una ruta del sistema de fitxers en lloc d'aquestes cadenes. Quan utilitzeu importlib.resources.as_file per a aquesta interfície, manteniu el seu context obert mentre el middleware necessiti el fitxer extret. Retornar una ruta temporal després de tancar el context pot fer perdre el recurs.

Manteniu les llistes de producció amb credencials a l'emmagatzematge de secrets o configuració previst per al desplegament. Les dades del paquet són adequades per a dades d'endpoint distribuïbles, no per suposar que tot el que s'empaqueta amb el codi romangui privat.

Articles relacionats