Estratta l-endpoints tal-proxy ringiela tat-tabella wara l-oħra
Żomm l-indirizzi IP imqabbla mal-portijiet tagħhom u vvalida l-oqsma meta tanalizza tabella HTML ta' lista tal-proxy li tkun issalvata.
Analizza kull ringiela tal-proxy bħala unità waħda. Jekk tħaffef kull td li taqbel mal-paġna kollha u tiggruppa r-riżultati b'għadd fiss, indirizz minn ringiela waħda jista' jiġi mqabbel ma' port mir-ringiela li jmiss meta ċellula tkun nieqsa jew tidher tabella oħra.
Għall-HTML li l-applikazzjoni tkun diġà kisbet, tabella li l-ewwel żewġ kolonni tagħha huma indirizz IP u port tista' tiġi analizzata hekk:
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 u table_selector huma input tal-applikazzjoni. Agħżel is-selettur u l-mapping tal-kolonni mill-markup veru tas-sors. Il-lista tal-proxy b'xejn hija sors wieħed ta' rekords tal-endpoints, iżda r-ringieli tagħha għandhom jiġu spezzjonati qabel ma tagħżel dak il-mapping. La ID tat-tabella storiku u lanqas it-talba li paġna fiha eżattament 300 rekord mhumiex skema li ddum.
Is-sett ineħħi l-pari indirizz-u-port duplikati filwaqt li jżomm l-assoċjazzjoni ta' kull par. Madankollu import mhux mistenni b'riżultat żero għandu jiġi investigat: it-tabella tista' tkun inbidlet jew id-dokument miġbur jista' jkun paġna ta' sfida minflok il-lista.
Żomm kwalunkwe protokoll imħabbar u l-oqsma tal-ħin tal-verifika mal-endpoint meta jkunu importanti. L-estrazzjoni ta' IP u port plawsibbli tistabbilixxi l-format, mhux li l-endpoint bħalissa jipprovdi servizz HTTP jew SOCKS li jaħdem.
Ir-ringieli tal-intestatura jew tal-filtru mhumiex endpoints. Ringiela li fiha biss ċelluli th tinħassar, filwaqt li oqsma vojta jew li mhumiex indirizzi jonqsu mill-validazzjoni. Tarmix l-ewwel u l-aħħar ringiela skont il-pożizzjoni: it-tnejn jistgħu jkunu endpoint veru wara li tinbidel it-tqassim tal-paġna.