Proxy datoteka pokraj razvojnog klona nije automatski prisutna u raspoređenom paketu crawlera. Dva su posla: uključiti bajtove u distribuciju, a zatim ih pronaći u instaliranom paketu.

Za Setuptools projekt s crawl_app/resources/proxies.txt unutar svog Python paketa, unos u pyproject.toml može ga uključiti:

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

Spojite to s postojećom konfiguracijom paketa projekta. Drugi build backend ima vlastito sučelje za uključivanje podataka.

Za middleware koji može trošiti endpoint stringove, Python 3.11+ može izravno čitati resurs paketa:

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

Koristite stvarni naziv paketa i provjerite očekivani format URL-a u čitaču. Za distribuirajuće javne endpoint podatke koristite adrese iz besplatnog popisa proxyja u protokolu i formatu URL-a koje middleware očekuje. Pretraga ne ovisi o trenutnom radnom direktoriju raspoređivanja.

Postavka PROXY_LIST treće strane može zahtijevati putanju datotečnog sustava umjesto ovih stringova. Kada za to sučelje koristite importlib.resources.as_file, držite njegov kontekst otvorenim sve dok middleware treba izdvojenu datoteku. Vraćanje privremene putanje nakon zatvaranja konteksta može izgubiti resurs.

Čuvajte produkcijske popise s vjerodajnicama u predviđenom spremištu tajni ili konfiguracije za raspoređivanje. Podaci paketa prikladni su za distribuirajuće endpoint podatke, a ne pretpostavku da sve što je zapakirano s kodom ostaje privatno.

Povezani članci