ಪ್ರಾಕ್ಸಿ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ಒಂದೊಂದು ಟೇಬಲ್ ಸಾಲಿನಂತೆ ಹೊರತೆಗೆಯಿರಿ
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 ಸೆಲ್ಗಳಿರುವ ಸಾಲನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ, ಖಾಲಿ ಅಥವಾ ವಿಳಾಸವಲ್ಲದ ಕ್ಷೇತ್ರಗಳು ಪರಿಶೀಲನೆಯಲ್ಲಿ ವಿಫಲವಾಗುತ್ತವೆ. ಪುಟದ ವಿನ್ಯಾಸ ಬದಲಾದ ನಂತರ ಮೊದಲ ಮತ್ತು ಕೊನೆಯ ಸಾಲನ್ನು ಸ್ಥಾನದ ಆಧಾರದ ಮೇಲೆ ಎಸೆಯಬೇಡಿ: ಎರಡೂ ನಿಜವಾದ ಎಂಡ್ಪಾಯಿಂಟ್ ಆಗಿರಬಹುದು.