په ځای پرځای شوي Scrapy پروژه کې د پراکسي لیست شاملول او بارول
د Scrapy پراکسي لیست سرچینه په ویش کې شامله کړئ او د ځای پرځای شوي کاري فولډر پر ځای د بستې موقعیت له مخې یې بار کړئ.
د پراختیا کلون تر څنګ پروکس فایل په اتوماتيک ډول د 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 معلوماتو لپاره مناسب دي، نه دا انګیرنه چې د کوډ سره ډله شوي هر څه پټ پاتې کیږي.