සෑම ප්‍රොක්සි පේළියක්ම එක් ඒකකයක් ලෙස විග්‍රහ කරන්න. පිටුව පුරා ඇති සියලුම ගැළපෙන 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 වාර්තා ඇති බවට වන ප්‍රකාශය කිසිදු තිරසාර ක්‍රමයක් නොවේ.

මෙම කුලකය සෑම යුගලයක සම්බන්ධතාව තබා ගනිමින් අනුපිටපත් ලිපින-සහ-පෝට් යුගල ඉවත් කරයි. එසේ වුවද අනපේක්ෂිත ශුන්‍ය-ප්‍රතිඵල ආයාතයක් විමර්ශනය කළ යුතුය: වගුව වෙනස් වී තිබිය හැක හෝ ලබාගත් ලේඛනය ලැයිස්තුව වෙනුවට අභියෝග පිටුවක් විය හැක.

වැදගත් විට, ප්‍රකාශිත ප්‍රොටෝකෝලය සහ පරීක්ෂණ-වේලා ක්ෂේත්‍ර අන්ත ලක්ෂ්‍යය සමඟ තබා ගන්න. විශ්වාසනීය IP සහ පෝට් උපුටා ගැනීම ආකෘතිය පමණක් තහවුරු කරයි, අන්ත ලක්ෂ්‍යය දැන් ක්‍රියාකාරී HTTP හෝ SOCKS සේවාවක් සපයන බව නොවේ.

ශීර්ෂ හෝ පෙරහන් පේළි අන්ත ලක්ෂ්‍ය නොවේ. th සෛල පමණක් ඇති පේළිය මඟ හරිනු ලබන අතර, හිස් හෝ ලිපිනයක් නොවන ක්ෂේත්‍ර තහවුරු කිරීමේදී අසමත් වේ. පිටු පිරිසැලසුම වෙනස් වූ පසු පළමු සහ අවසාන පේළිය ස්ථානය අනුව ඉවත් නොකරන්න: දෙකෙන් ඕනෑම එකක් සැබෑ අන්ත ලක්ෂ්‍යයක් විය හැක.

අදාළ ලිපි