Ang proxy file sa tabi ng development checkout ay hindi awtomatikong naroroon sa na-deploy na package ng crawler. May dalawang gawain: isama ang mga byte sa distribusyon, pagkatapos ay hanapin ang mga ito sa naka-install na package.

Para sa isang Setuptools project na may crawl_app/resources/proxies.txt sa loob ng Python package nito, ang entry sa pyproject.toml ay maaaring isama ito:

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

Pagsamahin ito sa umiiral na package configuration ng proyekto. Ang ibang build backend ay may sariling interface sa pagsasama ng data.

Para sa middleware na makakagamit ng endpoint strings, ang Python 3.11+ ay maaaring direktang magbasa ng package resource:

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

Gamitin ang aktwal na pangalan ng package at i-validate ang inaasahang URL format sa reader. Para sa maipapamahaging pampublikong endpoint data, gumamit ng mga address mula sa libreng listahan ng proxy sa protocol at URL format na inaasahan ng middleware. Ang paghahanap ay hindi nakadepende sa kasalukuyang working directory ng deployment.

Ang PROXY_LIST setting ng third-party ay maaaring mangailangan ng filesystem path sa halip na ang mga string na ito. Kapag gumagamit ng importlib.resources.as_file para sa interface na iyon, panatilihing bukas ang context nito hangga't kailangan ng middleware ang na-extract na file. Ang pagbabalik ng pansamantalang path pagkatapos isara ang context ay maaaring mawala ang resource.

Itago ang mga production list na may mga credential sa nilalayong secret o configuration storage ng deployment. Ang package data ay angkop para sa maipapamahaging endpoint data, hindi isang pagpapalagay na ang lahat ng nakabalot sa code ay nananatiling pribado.

Kaugnay na mga artikulo