ပရောက်စီ အတန်းတစ်ခုချင်းစီကို ယူနစ်တစ်ခုအဖြစ် ခွဲခြမ်းစိတ်ဖြာပါ။ စာမျက်နှာတစ်ခုလုံးရှိ ကိုက်ညီသော td အားလုံးကို ပြားချပ်ပြီး ရလဒ်များကို သတ်မှတ်အရေအတွက်ဖြင့် အုပ်စုဖွဲ့ပါက ဆဲလ်တစ်ခု ပျောက်ဆုံးချိန် သို့မဟုတ် အခြားဇယားတစ်ခု ပေါ်လာချိန်တွင် အတန်းတစ်ခုမှ လိပ်စာသည် နောက်အတန်း၏ ပေါ်တ်နှင့် တွဲသွားနိုင်သည်။

အပလီကေးရှင်း ရရှိပြီးသား HTML အတွက် ပထမကော်လံနှစ်ခုသည် IP လိပ်စာနှင့် ပေါ်တ်ဖြစ်သော ဇယားကို အောက်ပါအတိုင်း ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

import ipaddress
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, "html.parser")
table = soup.select_one(table_selector)
if table is None:
    raise ValueError("Expected proxy table was not found")

endpoints = set()
for row in table.select("tbody tr"):
    cells = row.find_all("td", recursive=False)
    if len(cells) < 2:
        continue
    try:
        address = ipaddress.ip_address(cells[0].get_text(strip=True))
        port = int(cells[1].get_text(strip=True))
    except ValueError:
        continue
    if 1 <= port <= 65535:
        endpoints.add((str(address), port))

html နှင့် table_selector သည် အပလီကေးရှင်း၏ ထည့်သွင်းချက်များဖြစ်သည်။ ရွေးချယ်ကိရိယာနှင့် ကော်လံ မြေပုံကို ရင်းမြစ်၏ အမှန်တကယ် အမှတ်အသားမှ ရွေးပါ။ အခမဲ့ ပရောက်စီစာရင်းသည် ဆုံးမှတ်မှတ်တမ်းများ၏ ရင်းမြစ်တစ်ခုဖြစ်သော်လည်း ထိုမြေပုံကို မရွေးမီ ၎င်း၏အတန်းများကို စစ်ဆေးသင့်သည်။ သမိုင်းဝင် ဇယား ID ဖြစ်စေ၊ စာမျက်နှာတွင် မှတ်တမ်း 300 အတိအကျ ပါသည်ဟူသော အဆိုဖြစ်စေ တည်တံ့သော schema မဟုတ်ပါ။

ဤအစုသည် ထပ်နေသော လိပ်စာနှင့်ပေါ်တ် အတွဲများကို ဖယ်ရှားပြီး အတွဲတစ်ခုချင်းစီ၏ ဆက်စပ်မှုကို ထိန်းသိမ်းသည်။ မမျှော်လင့်သော သုညရလဒ်ဖြင့် တင်သွင်းမှုကို စုံစမ်းသင့်ဆဲဖြစ်သည်။ ဇယား ပြောင်းသွားခြင်း သို့မဟုတ် ရယူထားသော စာရွက်စာတမ်းသည် စာရင်းမဟုတ်ဘဲ စိန်ခေါ်မှုစာမျက်နှာ ဖြစ်နိုင်သည်။

အရေးကြီးပါက ကြေညာထားသော ပရိုတိုကော်နှင့် စစ်ဆေးချိန် အကွက်များကို ဆုံးမှတ်နှင့်အတူ ထားပါ။ ဖြစ်နိုင်ခြေရှိသော IP နှင့် ပေါ်တ်ကို ထုတ်ယူခြင်းသည် ပုံစံသက်သက်ကို သက်သေပြသည်၊ ဆုံးမှတ်သည် ယခု အလုပ်လုပ်သော HTTP သို့မဟုတ် SOCKS ဝန်ဆောင်မှုကို ပေးနေသည်ဟု မဟုတ်ပါ။

ခေါင်းစီး သို့မဟုတ် စစ်ထုတ်သည့် အတန်းများသည် ဆုံးမှတ်များ မဟုတ်ပါ။ th ဆဲလ်များသာ ပါသော အတန်းကို ကျော်သွားပြီး ဗလာ သို့မဟုတ် လိပ်စာမဟုတ်သော အကွက်များသည် စစ်ဆေးမှုတွင် မအောင်မြင်ပါ။ ပထမအတန်းနှင့် နောက်ဆုံးအတန်းကို နေရာအလိုက် မပစ်ပါနှင့်။ စာမျက်နှာ အပြင်အဆင် ပြောင်းပြီးနောက် နှစ်ခုစလုံး စစ်မှန်သော ဆုံးမှတ် ဖြစ်နိုင်သည်။

ဆက်စပ်ဆောင်းပါးများ