Changanua kila safu ya proksi kama kitengo kimoja. Ikiwa utabandika kila td inayolingana kwenye ukurasa na kuweka matokeo katika makundi kwa idadi isiyobadilika, anwani kutoka safu moja inaweza kuoanishwa na bandari kutoka safu inayofuata wakati kisanduku kinakosekana au jedwali lingine linapotokea.

Kwa HTML ambayo programu imekwisha ipata, jedwali ambalo safu wima mbili za kwanza ni anwani ya IP na bandari linaweza kuchanganuliwa hivi:

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 na table_selector ni pembejeo za programu. Chagua kichaguzi na upangaji wa safu wima kutokana na alama halisi za chanzo. Orodha ya proksi bila malipo ni chanzo kimoja cha rekodi za vituo vya mwisho, lakini safu zake zinapaswa kuchunguzwa kabla ya kuchagua upangaji huo. Wala kitambulisho cha jedwali cha kihistoria wala madai kwamba ukurasa una rekodi 300 hasa si mpango wa kudumu.

Seti hiyo huondoa jozi za anwani-na-bandari zilizorudiwa huku ikihifadhi uhusiano wa kila jozi. Hata hivyo uagizaji usiotarajiwa wenye matokeo sifuri unapaswa kuchunguzwa: jedwali linaweza kuwa limebadilika au hati iliyopakuliwa inaweza kuwa ukurasa wa changamoto badala ya orodha.

Hifadhi itifaki yoyote iliyotangazwa na sehemu za muda wa ukaguzi pamoja na kitovu cha mwisho zinapozingatiwa. Kutoa IP na bandari zinazoaminika kunathibitisha muundo tu, si kwamba kitovu cha mwisho kinatoa huduma ya HTTP au SOCKS inayofanya kazi kwa sasa.

Safu za kichwa au kichujio si vituo vya mwisho. Safu iliyo na visanduku vya th pekee hurukwa, ilhali sehemu tupu au zisizo anwani hushindwa uthibitishaji. Usitupe safu ya kwanza na ya mwisho kwa nafasi: yoyote kati yao inaweza kuwa kitovu halisi cha mwisho baada ya mpangilio wa ukurasa kubadilika.

Makala zinazohusiana