ດຶງຈຸດປາຍທາງພຣັອກຊີ ແຖວຕາຕະລາງລະແຖວ
ເກັບທີ່ຢູ່ 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 ເປັນຂໍ້ມູນເຂົ້າຂອງແອັບພລິເຄຊັນ. ເລືອກຕົວເລືອກ ແລະ ການຈັບຄູ່ຖັນຈາກເຄື່ອງໝາຍຕົວຈິງຂອງແຫຼ່ງ. ລາຍຊື່ພຣັອກຊີຟຣີ ເປັນແຫຼ່ງໜຶ່ງຂອງບັນທຶກຈຸດປາຍທາງ, ແຕ່ຄວນກວດເບິ່ງແຖວຂອງມັນກ່ອນເລືອກການຈັບຄູ່ນັ້ນ. ທັງໄອດີຕາຕະລາງແບບເກົ່າ ແລະ ຄຳກ່າວວ່າໜ້າໜຶ່ງມີ 300 ບັນທຶກພໍດີ ບໍ່ແມ່ນໂຄງຮ່າງທີ່ຍືນຍົງ.
ຊຸດນີ້ລຶບຄູ່ທີ່ຢູ່-ແລະ-ພອດທີ່ຊ້ຳກັນ ໃນຂະນະທີ່ຮັກສາຄວາມສຳພັນຂອງແຕ່ລະຄູ່. ເຖິງຢ່າງໃດກໍ່ຕາມ ການນຳເຂົ້າທີ່ບໍ່ຄາດຄິດພ້ອມຜົນລັບສູນຍັງຄວນຖືກສືບສວນ: ຕາຕະລາງອາດປ່ຽນໄປ ຫຼື ເອກະສານທີ່ດຶງມາອາດເປັນໜ້າທ້າທາຍແທນລາຍຊື່.
ເກັບໂປຣໂຕຄໍທີ່ປະກາດ ແລະ ຟິລດ໌ເວລາກວດສອບໄວ້ຄຽງກັບຈຸດປາຍທາງເມື່ອມັນສຳຄັນ. ການດຶງ IP ແລະ ພອດທີ່ເບິ່ງສົມເຫດສົມຜົນພຽງແຕ່ຢືນຢັນຮູບແບບ ບໍ່ແມ່ນວ່າຈຸດປາຍທາງນັ້ນໃຫ້ບໍລິການ HTTP ຫຼື SOCKS ທີ່ໃຊ້ໄດ້ໃນຕອນນີ້.
ແຖວຫົວຕາຕະລາງ ຫຼື ແຖວກັ່ນຕອງບໍ່ແມ່ນຈຸດປາຍທາງ. ແຖວທີ່ມີແຕ່ຊ່ອງ th ຈະຖືກຂ້າມໄປ, ສ່ວນຊ່ອງຫວ່າງ ຫຼື ບໍ່ແມ່ນທີ່ຢູ່ຈະຕົກການກວດສອບ. ຢ່າຖິ້ມແຖວທຳອິດ ແລະ ແຖວສຸດທ້າຍຕາມຕຳແໜ່ງ: ທັງສອງອາດເປັນຈຸດປາຍທາງແທ້ຫຼັງຈາກຮູບແບບໜ້າປ່ຽນໄປ.