Proksi so'nggi nuqtalarini jadvalning bir qatori bilan chiqaring
IP manzillarni portlari bilan juft holda saqlang va saqlangan proksi ro'yxati HTML jadvalini tahlil qilganda maydonlarni tekshiring.
Har bir proksi qatorini alohida birlik sifatida tahlil qiling. Agar sahifadagi barcha mos td larni tekislab, natijalarni belgilangan songa ko'ra guruhlasangiz, katak yetishmasa yoki boshqa jadval paydo bo'lsa, bir qatordagi manzil keyingi qatorning porti bilan juftlashib qolishi mumkin.
Ilova allaqachon olgan HTML uchun dastlabki ikki ustuni IP manzil va port bo'lgan jadvalni shunday tahlil qilish mumkin:
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 va table_selector ilovaning kirishlari. Selektor va ustunlar mosligini manbaning haqiqiy belgilaridan tanlang. Bepul proksi ro'yxati so'nggi nuqta yozuvlarining bir manbasi, ammo bu moslikni tanlashdan oldin uning qatorlarini ko'rib chiqish kerak. Na eski jadval ID si, na sahifada aynan 300 yozuv bor degan da'vo barqaror sxema emas.
To'plam takroriy manzil-va-port juftlarini olib tashlaydi va har bir juftning bog'lanishini saqlaydi. Shunga qaramay kutilmagan nol natijali import tekshirilishi kerak: jadval o'zgargan bo'lishi mumkin yoki olingan hujjat ro'yxat emas, sinov sahifasi bo'lishi mumkin.
Muhim bo'lsa, e'lon qilingan protokol va tekshirish vaqti maydonlarini so'nggi nuqta bilan birga saqlang. Ishonchli IP va portni chiqarish faqat formatni tasdiqlaydi, so'nggi nuqta hozir ishlaydigan HTTP yoki SOCKS xizmatini taqdim etishini emas.
Sarlavha yoki filtr qatorlari so'nggi nuqta emas. Faqat th kataklari bo'lgan qator o'tkazib yuboriladi, bo'sh yoki manzil bo'lmagan maydonlar tekshiruvdan o'tmaydi. Birinchi va oxirgi qatorni joyiga qarab tashlamang: sahifa tartibi o'zgargandan keyin ikkalasi ham haqiqiy so'nggi nuqta bo'lishi mumkin.