Zahrnutie a načítanie zoznamu proxy v nasadenom projekte Scrapy
Zahrňte prostriedok zoznamu proxy Scrapy do distribúcie a načítajte ho podľa umiestnenia balíka namiesto nasadeného pracovného adresára.
Súbor proxy vedľa vývojového klonu nie je automaticky prítomný v nasadenom balíku crawlera. Sú dve úlohy: zahrnúť bajty do distribúcie a potom ich nájsť v nainštalovanom balíku.
Pre projekt Setuptools s crawl_app/resources/proxies.txt v jeho Python balíku ho môže zahrnúť záznam v pyproject.toml:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Zlúčte to s existujúcou konfiguráciou balíka projektu. Iný build backend má vlastné rozhranie na zahrnutie dát.
Pre middleware, ktorý dokáže spotrebúvať reťazce endpointov, môže Python 3.11+ čítať prostriedok balíka priamo:
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žite skutočný názov balíka a overte očakávaný formát URL v čítačke. Pre distribuovateľné verejné údaje endpointov používajte adresy z zoznamu bezplatných proxy v protokole a formáte URL, ktoré middleware očakáva. Vyhľadávanie nezávisí od aktuálneho pracovného adresára nasadenia.
Nastavenie PROXY_LIST tretej strany môže vyžadovať cestu v súborovom systéme namiesto týchto reťazcov. Pri používaní importlib.resources.as_file pre toto rozhranie udržujte jeho kontext otvorený, kým middleware potrebuje extrahovaný súbor. Vrátenie dočasnej cesty po zatvorení kontextu môže prostriedok stratiť.
Uchovávajte produkčné zoznamy s prihlasovacími údajmi v zamýšľanom úložisku tajomstiev alebo konfigurácie pre nasadenie. Dáta balíka sú vhodné pre distribuovateľné údaje endpointov, nie pre predpoklad, že všetko zabalené s kódom zostane súkromné.