Een proxybestand naast een ontwikkelklonen is niet automatisch aanwezig in het uitgerolde pakket van de crawler. Er zijn twee taken: de bytes opnemen in de distributie en ze vervolgens vinden in het geïnstalleerde pakket.

Voor een Setuptools-project met crawl_app/resources/proxies.txt in het Python-pakket kan een pyproject.toml-regel het opnemen:

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

Voeg dit samen met de bestaande pakketconfiguratie van het project. Een andere build-backend heeft zijn eigen interface voor datainclusie.

Voor middleware die endpoint-strings kan verwerken, kan Python 3.11+ de pakketbron rechtstreeks lezen:

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

Gebruik de werkelijke pakketnaam en valideer het verwachte URL-formaat in de lezer. Voor distribueerbare openbare endpoint-gegevens gebruikt u adressen uit de gratis proxylijst in het protocol- en URL-formaat dat de middleware verwacht. De opzoeking is niet afhankelijk van de huidige werkmap van de uitrol.

Een PROXY_LIST-instelling van derden kan een bestandssysteempad vereisen in plaats van deze strings. Houd bij gebruik van importlib.resources.as_file voor die interface de context open zolang de middleware het uitgepakte bestand nodig heeft. Het retourneren van een tijdelijk pad nadat de context is gesloten, kan de bron verliezen.

Bewaar productielijsten met inloggegevens in de beoogde geheime of configuratieopslag van de uitrol. Pakketgegevens zijn geschikt voor distribueerbare endpoint-gegevens, niet voor de aanname dat alles wat met code wordt gebundeld privé blijft.

Gerelateerde artikelen