د پراختیا کلون تر څنګ پروکس فایل په اتوماتيک ډول د crawler په ځای پرځای شوې بسته کې نه وي. دوه کارونه شته: بایټونه په ویش کې شاملول، بیا یې په نصب شوې بسته کې موندل.

د Setuptools پروژې لپاره چې د خپل Python بستې دننه crawl_app/resources/proxies.txt لري، د pyproject.toml ننوتل کولی شي دا شامل کړي:

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

دا د پروژې د موجوده بستې ترتیباتو سره یوځای کړئ. بل build backend خپل د معلوماتو د شاملولو انٹرفیس لري.

د هغو 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 معلوماتو لپاره مناسب دي، نه دا انګیرنه چې د کوډ سره ډله شوي هر څه پټ پاتې کیږي.

اړوندې مقالې