فایل پروکسی در کنار یک نسخه توسعه به‌طور خودکار در بسته مستقرشده خزنده حاضر نیست. دو کار وجود دارد: گنجاندن بایت‌ها در توزیع، سپس یافتن آن‌ها در بسته نصب‌شده.

برای پروژه 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 عمومی قابل توزیع، از نشانی‌های فهرست پروکسی رایگان در پروتکل و قالب URL مورد انتظار middleware استفاده کنید. جستجو به پوشه کاری فعلی استقرار وابسته نیست.

تنظیم PROXY_LIST یک طرف ثالث ممکن است به‌جای این رشته‌ها به مسیر فایل‌سیستم نیاز داشته باشد. هنگام استفاده از importlib.resources.as_file برای آن رابط، زمینه آن را تا زمانی که middleware به فایل استخراج‌شده نیاز دارد باز نگه دارید. بازگرداندن مسیر موقت پس از بسته شدن زمینه می‌تواند منبع را از دست بدهد.

فهرست‌های تولیدی دارای اعتبارنامه را در انبار اسرار یا پیکربندی مورد نظر استقرار نگه دارید. داده‌های بسته برای داده‌های endpoint قابل توزیع مناسب است، نه این فرض که هر چیزی که با کد بسته‌بندی می‌شود خصوصی می‌ماند.

مقالات مرتبط