Välityspalvelinluettelon sisällyttäminen ja lataaminen käyttöön otetussa Scrapy-projektissa
Sisällytä Scrapy-välityspalvelinluettelon resurssi jakeluun ja lataa se paketin sijainnin mukaan käyttöön otetun työhakemiston sijaan.
Kehityskloonin vieressä oleva välityspalvelintiedosto ei ole automaattisesti crawlerin käyttöön otetussa paketissa. Tehtäviä on kaksi: sisällytä tavut jakeluun ja etsi ne sitten asennetusta paketista.
Setuptools-projektille, jonka Python-paketissa on crawl_app/resources/proxies.txt, pyproject.toml-merkintä voi sisällyttää sen:
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
Yhdistä se projektin olemassa olevaan pakkekonfiguraatioon. Toisella build-backendillä on oma tietojen sisällytysrajapintansa.
Middlewarelle, joka voi kuluttaa endpoint-merkkijonoja, Python 3.11+ voi lukea paketin resurssin suoraan:
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()]
Käytä todellista paketin nimeä ja validoi odotettu URL-muoto lukijassa. Jaeltaville julkisille endpoint-tiedoille käytä osoitteita ilmaisesta välityspalvelinluettelosta middlewaren odottamassa protokollassa ja URL-muodossa. Haku ei riipu käyttöönoton nykyisestä työhakemistosta.
Kolmannen osapuolen PROXY_LIST-asetus voi vaatia tiedostojärjestelmän polun näiden merkkijonojen sijaan. Kun käytät importlib.resources.as_file -toimintoa kyseiselle rajapinnalle, pidä sen konteksti avoinna niin kauan kuin middleware tarvitsee puretun tiedoston. Väliaikaisen polun palauttaminen kontekstin sulkemisen jälkeen voi menettää resurssin.
Säilytä tunnistetietoja sisältävät tuotantoluettelot käyttöönoton tarkoitetussa salaisuus- tai konfiguraatiovarastossa. Pakettidata sopii jaeltaville endpoint-tiedoille, ei oletukselle, että kaikki koodin kanssa paketoitu pysyy yksityisenä.