Proxy datoteka pored 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 projekat sa crawl_app/resources/proxies.txt unutar svog Python paketa, unos u pyproject.toml ga može uključiti:

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

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

Za middleware koji može trošiti endpoint stringove, Python 3.11+ može direktno č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 proverite očekivani format URL-a u čitaču. Za distribuirajuće javne endpoint podatke koristite adrese iz besplatne liste proxyja u protokolu i formatu URL-a koje middleware očekuje. Pretraga ne zavisi od trenutnog radnog direktorijuma raspoređivanja.

Postavka PROXY_LIST treće strane može zahtevati putanju datotečnog sistema umesto 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 liste sa akredencijalima u predviđenom skladištu tajni ili konfiguracije za raspoređivanje. Podaci paketa prikladni su za distribuirajuće endpoint podatke, a ne pretpostavku da sve što je spakovano sa kodom ostaje privatno.

Povezani članci