ဖြန့်ကျက်ထားသော Scrapy ပရောဂျက်တွင် ပရောက်စီစာရင်းကို ထည့်သွင်းပြီး ဖွင့်ခြင်း
Scrapy ပရောက်စီစာရင်း အရင်းအမြစ်ကို ဖြန့်ဖြူးမှုတွင် ထည့်သွင်းပြီး ဖြန့်ကျက်ထားသော အလုပ်စာမည်ခံတွဲအစား ပက်ကေ့ဂျ်တည်နေရာအလိုက် ဖွင့်ပါ။
ဖွံ့ဖြိုးရေး ကလုန်းဘေးရှိ ပရောက်စီဖိုင်သည် crawler ၏ ဖြန့်ကျက်ထားသော ပက်ကေ့ဂျ်တွင် အလိုအလျောက် မရှိပါ။ အလုပ်နှစ်ခုရှိသည်- ဘိုက်များကို ဖြန့်ဖြူးမှုတွင် ထည့်သွင်းရန်၊ ထို့နောက် တပ်ဆင်ထားသော ပက်ကေ့ဂျ်တွင် ၎င်းတို့ကို ရှာဖွေရန်။
၎င်း၏ Python ပက်ကေ့ဂျ်အတွင်း crawl_app/resources/proxies.txt ပါသော Setuptools ပရောဂျက်အတွက် pyproject.toml ထည့်သွင်းချက်က ၎င်းကို ထည့်သွင်းနိုင်သည်-
[tool.setuptools.package-data]
crawl_app = ["resources/*.txt"]
၎င်းကို ပရောဂျက်၏ လက်ရှိ ပက်ကေ့ဂျ်ဖွဲ့စည်းမှုနှင့် ပေါင်းစပ်ပါ။ အခြား build backend တွင် ကိုယ်ပိုင် ဒေတာထည့်သွင်းမှု အင်တာဖေ့စ် ရှိသည်။
endpoint စာလုံးတန်းများကို သုံးနိုင်သော middleware အတွက် 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 ဒေတာအတွက် သင့်လျော်ပြီး ကုဒ်နှင့် ထုပ်ပိုးထားသမျှ လျှို့ဝှက်နေမည်ဟု ယူဆခြင်း မဟုတ်ပါ။