Исчистете листа на прокси IP:порта со Python
Проверете едноставна IPv4 датотека, нормализирајте порти и отстранете дупликати, задржувајќи различни порти на иста IP.
Ставете по еден IPv4 запис IP:port на ред во proxies.txt. Сите мора да припаѓаат на еден познат прокси протокол. Ако ги собирате од листата со бесплатни прокси-сервери, одделете ги протоколите пред овој текстуален влез. Чистењето не прифаќа URL со акредитиви, CSV колони или IPv6 адреси.
Зачувајте ја оваа скрипта со стандардна библиотека како clean-proxies.py во истиот директориум:
from ipaddress import IPv4Address
from pathlib import Path
seen = set()
cleaned = []
for number, raw in enumerate(
Path("proxies.txt").read_text(encoding="utf-8").splitlines(),
start=1,
):
text = raw.strip()
if not text:
continue
try:
host, port_text = text.rsplit(":", 1)
host = str(IPv4Address(host))
port = int(port_text)
if not 1 <= port <= 65535:
raise ValueError("port out of range")
except ValueError:
print(f"Skipping line {number}: invalid IPv4 endpoint")
continue
endpoint = (host, port)
if endpoint not in seen:
seen.add(endpoint)
cleaned.append(f"{host}:{port}")
output = "\n".join(cleaned)
Path("proxies-clean.txt").write_text(
output + ("\n" if output else ""),
encoding="utf-8",
)
print(f"Saved {len(cleaned)} endpoints")
Пуштете ја од тој директориум:
uv run --no-project python clean-proxies.py
Прегледајте ги пораките за прескокнати редови и proxies-clean.txt; влезната датотека останува недопрена. Излезот го задржува редоследот на првото појавување и отстранува дупликати според адреса плус нумеричка порта. Две копии од 203.0.113.10:8080 и една од 203.0.113.10:3128 даваат две точки. Децималната порта 08080 се нормализира во 8080.
Документациските адреси го покажуваат само форматот. Валидна IPv4 синтакса вклучува приватни и специјални адреси, па исчистен запис не е нужно јавно достапен. Додајте изрична политика за адреси ако сакате само јавна листа.
За мешан HTTP/SOCKS влез зачувајте го протоколот во одделни датотеки или колона; не заклучувајте од порта 1080. За вистински формат IPv6 во квадратни загради користете соодветен парсер. Скриптата одбива неподдржан влез наместо да погодува, а излезот не кажува за достапност, анонимност, држава или брзина. За тоа се потребни контролирани тестови на врската.