Uključivanje i učitavanje popisa proxyja u raspoređenom Scrapy projektu
Uključite Scrapy resurs popisa proxyja u distribuciju i učitajte ga prema lokaciji paketa umjesto prema raspoređenom radnom direktoriju.
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.