Elpreni proksiajn finpunktojn unu tabelvico samtempe
Tenu IP-adresojn kunligitaj kun siaj pordoj kaj validigu la kampojn dum analizado de konservita HTML-tabelo de proksia listo.
Analizu ĉiun proksian vicon kiel unuon. Se oni plataĵas ĉiun kongruan td tra la paĝo kaj grupigas la rezultojn laŭ fiksa nombro, adreso el unu vico povas pariĝi kun pordo el la sekva kiam mankas ĉelo aŭ aperas alia tabelo.
Por HTML jam akirita de la aplikaĵo, tabelo kies du unuaj kolumnoj estas IP-adreso kaj pordo povas esti analizita jene:
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 kaj table_selector estas enigoj de la aplikaĵo. Elektu la selektilon kaj la kolumnan mapadon laŭ la reala markado de la fonto. La senpaga proksia listo estas unu fonto de finpunktaj rikordoj, sed ĝiaj vicoj kontrolindas antaŭ ol elekti tiun mapadon. Nek historia tabela ID nek la aserto ke paĝo enhavas ekzakte 300 rikordojn estas daŭra skemo.
La aro forigas duobligitajn adres-pordajn parojn dum ĝi konservas la ligon de ĉiu paro. Neatendita enporto kun nula rezulto tamen esplorindas: la tabelo eble ŝanĝiĝis aŭ la akirita dokumento eble estas defia paĝo anstataŭ la listo.
Konservu ajnan anoncitan protokolon kaj kontroltempajn kampojn apud la finpunkto kiam ili gravas. Elpreni kredindan IP kaj pordon pruvas nur la formaton, ne ke la finpunkto nun provizas funkciantan HTTP- aŭ SOCKS-servon.
Ĉapaj aŭ filtraj vicoj ne estas finpunktoj. Vico enhavanta nur th-ĉelojn estas preterpasata, dum malplenaj aŭ neadresaj kampoj malsukcesas la validigon. Ne forĵetu la unuan kaj lastan vicon laŭ pozicio: ĉiu el ili povas esti reala finpunkto post kiam la paĝa aranĝo ŝanĝiĝas.