Soubor s proxy vedle vývojového klonu není v nasazeném balíčku crawleru automaticky přítomen. Jsou dva úkoly: zahrnout bajty do distribuce a poté je najít v nainstalovaném balíčku.

Pro projekt Setuptools s crawl_app/resources/proxies.txt uvnitř jeho Python balíčku jej může zahrnout záznam v pyproject.toml:

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

Sloučte to s existující konfigurací balíčku projektu. Jiný build backend má vlastní rozhraní pro zahrnutí dat.

Pro middleware, který dokáže spotřebovávat řetězce endpointů, může Python 3.11+ číst prostředek balíčku přímo:

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

Použijte skutečný název balíčku a ověřte očekávaný formát URL v čtečce. Pro distribuovatelná veřejná data endpointů používejte adresy z seznamu bezplatných proxy v protokolu a formátu URL, které middleware očekává. Vyhledávání nezávisí na aktuálním pracovním adresáři nasazení.

Nastavení PROXY_LIST od třetí strany může vyžadovat cestu v souborovém systému místo těchto řetězců. Při použití importlib.resources.as_file pro toto rozhraní udržujte jeho kontext otevřený, dokud middleware extrahovaný soubor potřebuje. Vrácení dočasné cesty po zavření kontextu může prostředek ztratit.

Uchovávejte produkční seznamy s přihlašovacími údaji v zamýšleném úložišti tajemství nebo konfigurace pro nasazení. Data balíčku jsou vhodná pro distribuovatelná data endpointů, nikoli pro předpoklad, že vše zabalené s kódem zůstane soukromé.

Související články