Проксинин акыркы чекиттерин таблицанын бир саптап чыгаруу
IP даректерин порттору менен жупташып кармаңыз жана сакталган прокси тизмесинин HTML таблицасын талдоодо талааларды текшериңиз.
Ар бир прокси сабын өзүнчө бирдик катары талдаңыз. Барактагы бардык дал келген 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 уячалары бар сап өткөрүп жиберилет, ал эми бош же дарек эмес талаалар текшерүүдөн өтпөйт. Биринчи жана акыркы сапты орду боюнча таштабаңыз: барактын жайгашуусу өзгөргөндөн кийин экөө тең чыныгы акыркы чекит болушу мүмкүн.