Zahrnutí a načtení seznamu proxy v nasazeném projektu Scrapy
Zahrňte prostředek seznamu proxy Scrapy do distribuce a načítejte jej podle umístění balíčku, nikoli podle nasazeného pracovního adresáře.
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é.