In proxylys opnimme en lade yn in útrôle Scrapy-projekt
Nim in Scrapy-proxylysboarne op yn 'e distribúsje en laad it op basis fan pakketlokaasje ynstee fan 'e útrôle wurkmap.
In proxybestân njonken in ûntwikkelingskloon is net automatysk oanwêzich yn it útrôle pakket fan 'e crawler. Der binne twa taken: de bytes opnimme yn 'e distribúsje en se dan fine yn it ynstallearre pakket.
Foar in Setuptools-projekt mei crawl_app/resources/proxies.txt yn syn Python-pakket kin in pyproject.toml-ynfier it opnimme:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Foegje dat gear mei de besteande pakketkonfiguraasje fan it projekt. In oare build-backend hat syn eigen ynsletten-dataanterface.
Foar middleware dy't endpoint-strings ferbrûke kin, kin Python 3.11+ de pakketboarne direkt lêze:
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()]
Brûk de werklike pakketnamme en falidearje it ferwachte URL-formaat yn 'e lêzer. Foar distribuearbere publike endpoint-gegevens brûk adressen út 'e fergees proxylys yn it protokol- en URL-formaat dat it middleware ferwachtet. It sykjen hinget net ôf fan 'e hjoeddeistige wurkmap fan 'e útrôl.
In PROXY_LIST-ynstelling fan tredden kin in bestandssysteempaad fereaskje ynstee fan dizze strings. As jo importlib.resources.as_file brûke foar dat ynterface, hâld syn kontekst iepen salang't it middleware it útpakte bestân nedich hat. It weromjaan fan in tydlik paad nei it sluten fan 'e kontekst kin de boarne ferlieze.
Bewarje produksjelysten mei bewynsgegevens yn 'e bedoelde geheime- of konfiguraasjeopslach fan 'e útrôl. Pakketgegevens binne geskikt foar distribuearbere endpoint-gegevens, net foar de oanname dat alles wat mei koade ferpakt is privee bliuwt.