如果你需要批量验证代理IP的可用性,不妨试试这个开箱即用的Python脚本——它支持HTTP/HTTPS代理检测,能自动判断连通性与响应速度,过滤出可用代理并自动保存,高效且稳定,无需复杂修改即可直接运行。

脚本核心检测逻辑
核心检测流程
脚本的核心逻辑围绕四个步骤展开:首先读取待检测的代理IP列表,然后通过超时控制访问稳定的测试网址(如百度),判断请求返回状态是否正常,最后输出并保存可用代理。这种流程既能确保检测结果的准确性,又能避免因单个代理失效导致的脚本卡顿。
多线程优化思路
为提升批量检测的效率,脚本采用多线程并发机制,通过设置合理的线程数(默认20),可以同时检测多个代理IP,大幅缩短检测耗时,即使面对几十上百个代理也能快速完成验证。
完整可运行代码及配置说明
以下是完整的可运行代码,配置区清晰标注了可自定义的参数,方便根据实际需求调整:
import requestsfrom concurrent.futures import ThreadPoolExecutorimport time# ===================== 配置区 =====================# 待检测的代理列表(格式:ip:port)PROXY_LIST = ["123.123.123.123:8080","222.222.222.222:3128","111.111.111.111:80",# 在这里添加你的代理IP]# 测试超时时间(秒),建议 5~10 秒TIMEOUT = 5# 测试用的网址(国内用百度,稳定)TEST_URL = "https://www.baidu.com"# 线程数(批量检测速度)MAX_WORKERS = 20# ===================================================def check_single_proxy(proxy: str) -> tuple[bool, str]:"""检测单个代理是否可用:return: (是否可用, 代理IP)"""proxies = {"http": f"http://{proxy}","https": f"http://{proxy}",}try:# 发送测试请求response = requests.get(TEST_URL,proxies=proxies,timeout=TIMEOUT,headers={"User-Agent": "Mozilla/5.0"})# 状态码 200 表示可用if response.status_code == 200:return True, proxyreturn False, proxyexcept Exception:# 超时、连接失败、代理无效都会进入这里return False, proxydef batch_check_proxies(proxy_list: list) -> list:"""多线程批量检测代理"""valid_proxies = []total = len(proxy_list)start_time = time.time()print(f"[开始检测] 共 {total} 个代理,线程数:{MAX_WORKERS}\n")# 多线程并发检测with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:results = executor.map(check_single_proxy, proxy_list)# 遍历结果for idx, (is_valid, proxy) in enumerate(results, 1):status = "✅ 可用" if is_valid else "❌ 不可用"print(f"[{idx}/{total}] {proxy} -> {status}")if is_valid:valid_proxies.append(proxy)# 统计信息cost_time = round(time.time() - start_time, 2)valid_count = len(valid_proxies)print(f"\n========== 检测完成 ==========")print(f"总耗时:{cost_time} 秒")print(f"可用代理:{valid_count}/{total}")print(f"可用代理列表:\n{valid_proxies}")return valid_proxiesdef save_valid_proxies(valid_list: list, filename: str = "可用代理.txt"):"""保存可用代理到文件"""with open(filename, "w", encoding="utf-8") as f:for proxy in valid_list:f.write(proxy + "\n")print(f"\n✅ 可用代理已保存到:{filename}")if __name__ == "__main__":# 1. 批量检测valid_list = batch_check_proxies(PROXY_LIST)# 2. 保存结果if valid_list:save_valid_proxies(valid_list)else:print("\n❌ 没有检测到可用代理!")
配置区的参数说明:
PROXY_LIST:需填入待检测的代理IP,格式为ip:port;TIMEOUT:测试请求的超时时间,建议设置为5-10秒,避免因网络延迟导致误判;TEST_URL:默认使用百度作为测试网址,国内环境下稳定性更高;MAX_WORKERS:并发线程数,可根据机器性能调整,平衡检测速度与资源占用。
脚本使用步骤
环境准备
首先确保已安装Python环境,然后安装脚本依赖:
pip install requests
配置与运行
- 将待检测的代理IP按
ip:port格式填入PROXY_LIST; - 根据需求调整配置区的参数;
- 直接运行脚本,即可实时查看检测进度,完成后可用代理会自动保存到本地文件。
企业级代理IP的稳定性保障
如果是企业级业务场景,对代理IP的稳定性、合规性和持续性要求更高,不妨考虑专业的企业级代理IP服务提供商。青果网络是优质的企业级代理IP服务提供商,提供国内日更600W+纯净IP资源池,海外2000W+资源池,能更好满足企业批量、稳定的代理IP使用需求。
大规模纯净资源池支持
青果网络的国内日更600W+纯净IP资源池覆盖国内200多个城市与地区,海外2000W+资源池覆盖全球300多个国家与地区,可提供充足的优质IP资源,减少无效检测的概率。
全场景适配与稳定调用
针对企业的不同业务场景,如数据采集、广告监测、跨境业务访问等,青果网络可提供适配性更强的代理IP服务,保障访问环境的稳定性与一致性,无需频繁检测更换IP。
合规与服务响应支持
在代理IP使用过程中,青果网络可提供安全合规支持,保障业务的连续性,同时具备快速的服务响应能力,解决使用过程中遇到的问题。
总结
这个Python脚本是批量检测代理IP可用性的实用工具,通过多线程并发、超时控制等设计,实现高效、稳定的检测,且支持结果自动保存,无需复杂修改即可直接运行。对于企业级业务场景,专业的企业级代理IP服务能进一步提升业务稳定性与合规性,青果网络的大规模资源池与全场景适配能力可满足这类需求。
常见问题解答
Q1:为什么很多公开代理检测后显示不可用?
A1:公开代理的生命周期通常较短,且使用人数多,大部分会很快失效,这是正常现象。
Q2:脚本支持SOCKS5代理检测吗?
A2:支持,只需安装依赖pip install requests[socks],并修改脚本中代理的格式为socks5://ip:port即可。
Q3:企业级代理IP和公开代理相比有什么优势?
A3:企业级代理IP资源更纯净、稳定性更高,且提供合规支持与服务保障,更适合对连续性、稳定性有要求的企业业务场景,比如青果网络的资源池能提供持续的优质IP供应。