En proxyfil ved siden af et udviklingstjek udgør ikke automatisk en del af crawlerens udrullede pakke. Der er to opgaver: at inkludere byteindholdet i distributionen og derefter finde det i den installerede pakke.

For et Setuptools-projekt med crawl_app/resources/proxies.txt inde i sin Python-pakke kan en post i pyproject.toml inkludere den:

[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]

Flet det sammen med projektets eksisterende pakkekonfiguration. Et andet build-backend har sin egen grænseflade til datainklusion.

For middleware, der kan forbruge endpoint-strenge, kan Python 3.11+ læse pakkeressourcen direkte:

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()]

Brug det faktiske pakkenavn, og validér det forventede URL-format i læseren. Til distribuerbare offentlige endpoint-data skal du bruge adresser fra gratis proxyliste i det protokol- og URL-format, som middleware forventer. Opslaget afhænger ikke af udrulningens aktuelle arbejdsmappe.

En tredjepartsindstilling PROXY_LIST kan kræve en filsystemsti i stedet for disse strenge. Når du bruger importlib.resources.as_file til den grænseflade, skal du holde dens kontekst åben, så længe middleware har brug for den udtrukne fil. Returnering af en midlertidig sti, efter konteksten er lukket, kan miste ressourcen.

Opbevar produktionslister med legitimationsoplysninger i den tilsigtede hemmeligheds- eller konfigurationslager til udrulningen. Pakkedata er velegnede til distribuerbare endpoint-data, ikke en antagelse om, at alt, der pakkes med kode, forbliver privat.

Relaterede artikler