Proxy-Endpunkten eng Zeil aus der Tabell op eemol extrahéieren
Halt IP-Adressen mat hire Porte beieneen a validéier d'Felder beim Parsen vun enger gespäicherter HTML-Tabell mat enger Proxy-Lëscht.
Parse all Proxy-Zeil als eng Eenheet. Wanns du all passend td iwwer d'Säit flaach méchs an d'Resultater no enger fester Zuel gruppéiers, kann eng Adress aus enger Zeil mat engem Port aus der nächster gepaart ginn, wann eng Zell feelt oder eng aner Tabell erschéngt.
Fir HTML, dat d'Applikatioun schonn huet, kann eng Tabell, deenen hir éischt zwou Kolonne IP-Adress a Port sinn, sou geparst ginn:
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 an table_selector sinn Inpute vun der Applikatioun. Wielt de Selekter an d'Kolonne-Mapping no deem wat tatsächlech am Quell-Markup steet. Déi gratis Proxy-Lëscht ass eng Quell fir Endpunkt-Records, awer hir Zeile solle gepréift gi ier dir dëst Mapping auswielt. Weder eng historesch Tabell-ID nach d'Behaaptung, datt eng Säit genee 300 Records enthält, ass en dauerhaft Schema.
D'Satz setzt duebel Adress-an-Port-Paren ewech an erhält d'Verbindung vun all Paar. En onerwaarten Import mat null Resultater soll awer ënnersicht ginn: d'Tabell kann sech geännert hunn oder datt Dokument, dat geholl gouf, kann eng Challenge-Säit amplaz vun der Lëscht sinn.
Halt e publizéierte Protokoll a Felder vun der Iwwerpréifzäit beim Endpunkt, wann se wichteg sinn. Eng plausibel IP an e Port ze extrahéieren etabléiert just de Format, net datt den Endpunkt grad elo en funktionéierende HTTP- oder SOCKS-Service bitt.
Kapp- oder Filterzeile sinn keng Endpunkten. Eng Zeil mat nëmmen th-Zellen gëtt iwwersprangen, wärend eidel oder net-Adress-Felder d'Validatioun net packen. Verwerf déi éischt an déi lescht Zeil net no der Positioun: béid kënnen en echte Endpunkt sinn, nodeems d'Säit-Layout sech ännert.