Vključitev in nalaganje seznama proxy v nameščenem projektu Scrapy
Vključite vir seznama proxy Scrapy v distribucijo in ga naložite glede na lokacijo paketa namesto nameščenega delovnega imenika.
Datoteka proxy ob razvojni kopiji ni samodejno prisotna v nameščenem paketu crawlerja. Dve nalogi: vključiti bajte v distribucijo in jih nato najti v nameščenem paketu.
Za projekt Setuptools s crawl_app/resources/proxies.txt v svojem paketu Python ga lahko vključi vnos v pyproject.toml:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
To združite z obstoječo konfiguracijo paketa projekta. Drug build backend ima svoj vmesnik za vključevanje podatkov.
Za middleware, ki lahko uporablja nize endpoint, lahko Python 3.11+ neposredno prebere vir 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()]
Uporabite dejansko ime paketa in v bralniku preverite pričakovano obliko URL. Za distribucijske javne podatke endpoint uporabite naslove iz brezplačnega seznama proxy v protokolu in obliki URL, ki jih middleware pričakuje. Iskanje ni odvisno od trenutnega delovnega imenika namestitve.
Nastavitev PROXY_LIST tretje strani lahko zahteva pot datotečnega sistema namesto teh nizov. Ko za ta vmesnik uporabljate importlib.resources.as_file, imejte njegov kontekst odprt, dokler middleware potrebuje izvlečeno datoteko. Vrnitev začasne poti po zaprtju konteksta lahko izgubi vir.
Shranjujte produkcijske sezname s poverilnicami v predvidenem shrambi skrivnosti ali konfiguracije za namestitev. Podatki paketa so primerni za distribucijske podatke endpoint, ne za predpostavko, da vse, kar je pakirano s kodo, ostane zasebno.