د پروکسي پایاني نقطې په یو وخت کې د جدول یوه کرښه راوباسئ
د 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 خانې لري پرېښودل کېږي، خو تشې یا غیرپتې ساحې په کتنه کې ناکامېږي. لومړنۍ او وروستنۍ کرښه د موقعیت له مخې مه غورځوئ: د پاڼې د بڼې له بدلون وروسته د دواړو څخه هر یو کېدای شي ریښتینې پایني نقطه وي.