本文目录导读:

功能特点
- 多线程并发:显著加快验证速度。
- 自定义测试URL:默认使用
http://httpbin.org/ip(返回请求者的IP),也可改为其他网站。 - 支持HTTP/HTTPS:自动检测代理协议。
- 详细输出:显示IP、端口、类型、延迟与状态。
- 结果保存:将有效代理保存到文件。
脚本源码 (Python 3)
import requests
import threading
import time
import queue
from concurrent.futures import ThreadPoolExecutor, as_completed
# ===== 配置参数 =====
PROXY_FILE = "proxies.txt" # 输入:代理列表文件,每行格式 IP:Port
VALID_FILE = "valid_proxies.txt" # 输出:有效的代理文件
TEST_URL = "http://httpbin.org/ip" # 测试URL(应返回请求者IP)
TIMEOUT = 5 # 超时时间(秒)
MAX_WORKERS = 30 # 并发线程数
# ==================
def test_proxy(proxy):
"""测试单个代理是否可用,返回结果字典"""
result = {
"proxy": proxy,
"valid": False,
"type": "unknown",
"response_time": None,
"error": None
}
# 尝试 HTTP 代理
try:
proxies = {
"http": f"http://{proxy}",
"https": f"http://{proxy}"
}
start = time.time()
resp = requests.get(TEST_URL, proxies=proxies, timeout=TIMEOUT)
elapsed = time.time() - start
if resp.status_code == 200:
result["valid"] = True
result["type"] = "http"
result["response_time"] = round(elapsed, 3)
return result
except Exception as e:
pass
# 尝试 HTTPS 代理(有些代理只支持 HTTPS)
try:
proxies = {
"http": f"https://{proxy}",
"https": f"https://{proxy}"
}
start = time.time()
resp = requests.get(TEST_URL, proxies=proxies, timeout=TIMEOUT)
elapsed = time.time() - start
if resp.status_code == 200:
result["valid"] = True
result["type"] = "https"
result["response_time"] = round(elapsed, 3)
return result
except Exception as e:
result["error"] = str(e)
return result
def load_proxies(file_path):
"""从文件加载代理列表,去除空白和空行"""
proxies = []
try:
with open(file_path, "r") as f:
for line in f:
line = line.strip()
if line and ":" in line:
proxies.append(line)
except FileNotFoundError:
print(f"[错误] 找不到文件: {file_path}")
exit(1)
return proxies
def main():
print("[*] 正在加载代理列表...")
proxies = load_proxies(PROXY_FILE)
total = len(proxies)
print(f"[+] 共加载 {total} 个代理")
if total == 0:
print("[!] 没有代理需要测试,退出。")
return
valid_proxies = []
tested = 0
lock = threading.Lock()
print(f"[*] 开始测试(线程数: {MAX_WORKERS})...")
print("=" * 60)
start_time = time.time()
# 使用线程池
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
futures = {executor.submit(test_proxy, proxy): proxy for proxy in proxies}
for future in as_completed(futures):
proxy = futures[future]
try:
result = future.result()
with lock:
tested += 1
if result["valid"]:
valid_proxies.append(result)
print(f"[✓] {proxy:<20} 类型: {result['type']:<5} 延迟: {result['response_time']}s")
else:
error = result["error"] if result["error"] else "不可用"
print(f"[✗] {proxy:<20} 原因: {error[:30]}")
# 显示进度
percentage = (tested / total) * 100
print(f"[进度] {tested}/{total} ({percentage:.1f}%)", end="\r")
except Exception as e:
print(f"[!] 测试代理 {proxy} 时发生异常: {e}")
elapsed = time.time() - start_time
print("\n" + "=" * 60)
print(f"[✓] 测试完成,耗时 {elapsed:.1f} 秒")
print(f"[+] 有效代理: {len(valid_proxies)} / {total}")
# 保存有效代理
if valid_proxies:
# 按响应时间排序
valid_proxies.sort(key=lambda x: x["response_time"])
with open(VALID_FILE, "w") as f:
for p in valid_proxies:
f.write(f"{p['proxy']} {p['type']} {p['response_time']}s\n")
print(f"[+] 有效代理已保存至: {VALID_FILE}")
# 打印前10个最快的代理
if valid_proxies:
print("\n[快速代理 TOP 10]:")
for i, p in enumerate(valid_proxies[:10], 1):
print(f" {i}. {p['proxy']} ({p['type']}, {p['response_time']}s)")
if __name__ == "__main__":
main()
使用方法
准备工作
- 安装依赖:
pip install requests - 准备代理列表文件
proxies.txt,每行一个IP:端口,168.1.1:8080 10.0.0.1:3128 8.8.8.8:80
运行脚本
python proxy_validator.py
输出说明
- 表示有效代理,显示类型(http/https)和响应时间(秒)。
- 表示无效代理,显示失败原因(超时、连接拒绝等)。
- 最终生成
valid_proxies.txt,包含有效代理及其类型和延迟(按速度排序)。
高级自定义
- 更改测试URL:将
TEST_URL改为你信任的网站(如https://www.google.com)。 - 提高准确度:可设置
TEST_URL为返回IP的API(如http://ip-api.com/json)并验证返回IP是否为你所用代理的IP。 - 验证SOCKS代理:如需支持SOCKS5,安装
pip install requests[socks],然后修改代理格式为socks5://ip:port。 - 批量测试大量代理:减少
TIMEOUT值(如2秒),增加MAX_WORKERS(但注意不要超过系统限制或触发目标网站反爬)。
输出示例
[*] 正在加载代理列表...
[+] 共加载 120 个代理
[*] 开始测试(线程数: 30)...
============================================================
[✓] 192.168.1.1:8080 类型: http 延迟: 0.435s
[✗] 10.0.0.1:3128 原因: timed out
[✓] 8.8.8.8:80 类型: https 延迟: 1.202s
...
[进度] 120/120 (100.0%)
============================================================
[✓] 测试完成,耗时 12.3 秒
[+] 有效代理: 48 / 120
[+] 有效代理已保存至: valid_proxies.txt
[快速代理 TOP 10]:
1. 192.168.1.1:8080 (http, 0.435s)
2. 203.0.113.5:3128 (http, 0.521s)
...
这个脚本简单、高效、可扩展,适合日常批量验证代理使用。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播