Файл с прокси до развойно копие не присъства автоматично в разгърнатия пакет на обхождача. Има две задачи: включване на байтовете в дистрибутива и след това намирането им в инсталирания пакет.

За проект на Setuptools с crawl_app/resources/proxies.txt в неговия Python пакет, запис в pyproject.toml може да го включи:

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

Обединете това със съществуващата конфигурация на пакета на проекта. Друг бекенд за изграждане има собствен интерфейс за включване на данни.

За middleware, който може да консумира низове за endpoint, Python 3.11+ може да чете ресурса на пакета директно:

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

Използвайте действителното име на пакета и валидирайте очаквания URL формат в четеца. За разпространяеми публични endpoint данни използвайте адреси от безплатния списък с прокси в очаквания от middleware протокол и URL формат. Търсенето не зависи от текущата работна директория на разгръщането.

Настройка PROXY_LIST от трета страна може да изисква път във файловата система вместо тези низове. Когато използвате importlib.resources.as_file за този интерфейс, дръжте контекста му отворен, докато middleware се нуждае от извлечения файл. Връщането на временен път след затваряне на контекста може да загуби ресурса.

Пазете производствените списъци с идентификационни данни в предвиденото за разгръщането хранилище за тайни или конфигурация. Данните на пакета са подходящи за разпространяеми endpoint данни, а не предположение, че всичко, опаковано с код, остава поверително.

Подобни статии