Përfshirja dhe ngarkimi i një liste proxy në një projekt Scrapy të vendosur
Përfshini një burim liste proxy të Scrapy në shpërndarje dhe ngarkojeni sipas vendndodhjes së paketës në vend të drejtorisë së punës të vendosur.
Një skedar proxy pranë një kopje zhvillimi nuk është automatikisht i pranishëm në paketën e vendosur të crawler-it. Ka dy punë: të përfshihen bajtët në shpërndarje, pastaj t'i gjesh në paketën e instaluar.
Për një projekt Setuptools me crawl_app/resources/proxies.txt brenda paketës së tij Python, një zë në pyproject.toml mund ta përfshijë atë:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Kombinoni këtë me konfigurimin ekzistues të paketës të projektit. Një backend tjetër ndërtimi ka ndërfaqen e vet të përfshirjes së të dhënave.
Për middleware që mund të konsumojë vargje endpoint, Python 3.11+ mund të lexojë burimin e paketës drejtpërdrejt:
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()]
Përdorni emrin aktual të paketës dhe vlerësoni formatin e pritur të URL-së në lexues. Për të dhëna publike endpoint të shpërndarshme, përdorni adresa nga lista e proxy falas në protokollin dhe formatin e URL-së që pret middleware. Kërkimi nuk varet nga drejtoria aktuale e punës e vendosjes.
Një cilësim PROXY_LIST i palës së tretë mund të kërkojë një shteg të sistemit të skedarëve në vend të këtyre vargjeve. Kur përdorni importlib.resources.as_file për atë ndërfaqe, mbajeni kontekstin e tij të hapur për sa kohë middleware ka nevojë për skedarin e nxjerrë. Kthimi i një shtegu të përkohshëm pas mbylljes së kontekstit mund të humbasë burimin.
Mbani listat e prodhimit me kredenciale në ruajtësen e sekreteve ose konfigurimit të destinuar për vendosjen. Të dhënat e paketës janë të përshtatshme për të dhëna endpoint të shpërndarshme, jo për supozimin se gjithçka e paketuar me kod mbetet private.