Uključivanje i učitavanje liste proxyja u raspoređenom Scrapy projektu
Uključite Scrapy resurs liste proxyja u distribuciju i učitajte ga prema lokaciji paketa umjesto prema raspoređenom radnom direktoriju.
Proxy datoteka pored 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 projekat sa crawl_app/resources/proxies.txt unutar svog Python paketa, unos u pyproject.toml ga može 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 direktno č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 besplatne liste proxyja u protokolu i formatu URL-a koje middleware očekuje. Pretraga ne zavisi od trenutnog radnog direktorija raspoređivanja.
Postavka PROXY_LIST treće strane može zahtijevati putanju datotečnog sistema 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 liste s vjerodajnicama u predviđenom skladištu tajni ili konfiguracije za raspoređivanje. Podaci paketa prikladni su za distribuirajuće endpoint podatke, a ne pretpostavku da sve što je spakovano s kodom ostaje privatno.