Proxy-einpunten ien tabelrige tagelyk útlizze
Hâld IP-adressen keppele oan har poarten en falidearje de fjilden by it parsen fan in bewarre HTML-tabel mei proxy-list.
Parse elke proxy-rige as ien ienheid. As jo alle oerienkommende td oer de side flak meitsje en de resultaten groepearje by in fêst oantal, kin in adres út ien rige keppele wurde oan in poarte út de folgjende as in sel ûntbrekt of in oare tabel ferskynt.
Foar HTML dy't de applikaasje al helle hat, kin in tabel wêrfan de earste twa kolommen IP-adres en poarte binne, sa parsd wurde:
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 en table_selector binne ynfier fan de applikaasje. Kies de selektor en kolomkoppeling op grûn fan de werklike markup fan de boarne. De fergees proxy-list is ien boarne fan einpuntrecords, mar de rigen moatte besjoen wurde foardat dy koppeling keazen wurdt. Noch in histoaryske tabel-ID noch de bewearing dat in side krekt 300 records befettet is in bliuwend skema.
De set ferwideret dûbele adres-poarte-pearen en behâldt de bining fan elk pear. In ûnferwachte ymport mei nul resultaten moat dochs ûndersocht wurde: de tabel kin feroare wêze of it helle dokumint kin in útdagingsside wêze ynstee fan de list.
Hâld elk oankundige protokol en kontrôletiidfjilden by it einpunt as se fan belang binne. It útlizzen fan in leauwensweardich IP en poarte fêstiget it formaat, net dat it einpunt op dit stuit in wurkjende HTTP- of SOCKS-tsjinst biedt.
Kop- of filterrigen binne gjin einpunten. In rige mei allinnich th-sellen wurdt oerslein, wylst lege of net-adresfjilden net troch de falidaasje komme. Smyt de earste en lêste rige net op posysje fuort: beide kinne in echt einpunt wêze nei't de side-yndieling feroaret.