Файл проксі поруч із клоном розробки не обов'язково присутній у розгорнутому пакеті сканера. Є два завдання: включити байти в дистрибутив, а потім знайти їх у встановленому пакеті.

Для проєкту Setuptools з crawl_app/resources/proxies.txt усередині його Python-пакета запис у pyproject.toml може включити його:

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

Об'єднайте це з наявною конфігурацією пакета проєкту. Інший бекенд збірки має власний інтерфейс включення даних.

Для проміжного програмного забезпечення, здатного споживати рядки 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 використовуйте адреси з безкоштовного списку проксі у протоколі та форматі URL, яких очікує проміжне програмне забезпечення. Пошук не залежить від поточного робочого каталогу розгортання.

Налаштування PROXY_LIST від третьої сторони може вимагати шляху файлової системи замість цих рядків. Використовуючи importlib.resources.as_file для цього інтерфейсу, тримайте його контекст відкритим, доки проміжному програмному забезпеченню потрібен вилучений файл. Повернення тимчасового шляху після закриття контексту може призвести до втрати ресурсу.

Зберігайте виробничі списки з обліковими даними в призначеному для розгортання сховищі секретів або конфігурації. Дані пакета підходять для розповсюджуваних даних endpoint, а не для припущення, що все, упаковане з кодом, залишається приватним.

Схожі статті