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ä.

Aiheeseen liittyvät artikkelit