如果你需要批量筛选可用的代理IP,下面这个开箱即用的Python检测脚本可以帮你高效完成任务,支持多协议并发检测、超时自动判定,结果清晰易读,还能直接导出可用IP列表。

完整可用的代理IP批量检测脚本

脚本核心功能

这个脚本针对代理IP检测的核心需求设计,具备以下实用特性:

  • 支持HTTP/HTTPS/SOCKS5多协议代理批量检测
  • 自定义超时时间,自动判定超时代理为失效
  • 实时区分可用/不可用代理,结果可视化展示
  • 支持并发检测,大幅提升批量检测效率
  • 可扩展导出可用代理到本地文件,方便后续使用

完整代码与配置说明

  1. import requests
  2. from concurrent.futures import ThreadPoolExecutor
  3. import time
  4. # ===================== 配置区 =====================
  5. # 待检测的代理IP列表(格式:协议://ip:端口)
  6. PROXY_LIST = [
  7. "http://123.123.123.123:8080",
  8. "http://114.231.115.105:8888",
  9. "https://221.6.234.238:80",
  10. # 在这里添加你的代理列表
  11. ]
  12. # 检测超时时间(秒)
  13. TIMEOUT = 5
  14. # 并发线程数(同时检测多少个)
  15. MAX_WORKERS = 20
  16. # 测试用的目标网址(能快速响应即可)
  17. TEST_URL = "https://httpbin.org/get"
  18. # ===================================================
  19. # 存储结果
  20. usable_proxies = []
  21. unusable_proxies = []
  22. def check_proxy(proxy):
  23. """检测单个代理是否可用"""
  24. proxies = {
  25. "http": proxy,
  26. "https": proxy
  27. }
  28. try:
  29. # 发送测试请求
  30. response = requests.get(
  31. TEST_URL,
  32. proxies=proxies,
  33. timeout=TIMEOUT,
  34. headers={"User-Agent": "Mozilla/5.0"}
  35. )
  36. # 状态码200表示可用
  37. if response.status_code == 200:
  38. print(f"✅ 可用代理:{proxy}")
  39. usable_proxies.append(proxy)
  40. else:
  41. print(f"❌ 不可用代理:{proxy} | 状态码:{response.status_code}")
  42. unusable_proxies.append(proxy)
  43. except Exception as e:
  44. print(f"❌ 不可用代理:{proxy} | 错误:{str(e)[:30]}...")
  45. unusable_proxies.append(proxy)
  46. def batch_check_proxies():
  47. """批量检测代理"""
  48. print("="*50)
  49. print(f"开始检测代理,总数:{len(PROXY_LIST)}")
  50. print(f"测试地址:{TEST_URL}")
  51. print("="*50)
  52. start_time = time.time()
  53. # 多线程并发检测(速度快)
  54. with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
  55. executor.map(check_proxy, PROXY_LIST)
  56. end_time = time.time()
  57. # 输出最终结果
  58. print("\n" + "="*50)
  59. print(f"检测完成!耗时:{end_time - start_time:.2f} 秒")
  60. print(f"✅ 可用代理总数:{len(usable_proxies)}")
  61. print(f"❌ 不可用代理总数:{len(unusable_proxies)}")
  62. print("="*50)
  63. # 打印可用代理列表
  64. if usable_proxies:
  65. print("\n【可用代理列表】")
  66. for p in usable_proxies:
  67. print(p)
  68. return usable_proxies
  69. if __name__ == "__main__":
  70. batch_check_proxies()

脚本使用步骤

  1. 安装依赖
    执行以下命令安装脚本所需的基础依赖:

    1. pip install requests

    如果需要检测SOCKS5代理,还需安装扩展依赖:

    1. pip install requests[socks]
  2. 配置代理列表
    将待检测的代理IP按协议://ip:端口的格式填入代码中的PROXY_LIST列表,支持HTTP、HTTPS、SOCKS5三种协议。

  3. 运行脚本
    直接运行Python脚本,控制台会实时输出每个代理的检测状态,最终汇总可用与不可用代理的数量,并打印可用代理列表。

脚本核心原理与扩展优化

检测逻辑说明

脚本的核心检测逻辑围绕代理的连通性与有效性展开:

  • 向公共测试接口(如https://httpbin.org/get)发送请求,验证代理能否正常转发请求
  • 若请求在设定超时时间内返回200状态码,则判定代理可用
  • 超时、报错或返回非200状态码,则判定代理不可用

可调参数优化建议

根据实际需求调整以下参数,可提升检测效率与准确性:

  • TIMEOUT:建议设置为3~10秒,过短可能误判稳定代理,过长会拖慢检测速度
  • MAX_WORKERS:建议设置为10~50,数值越大并发检测数量越多,检测速度越快,但需注意本地网络承载能力
  • TEST_URL:可替换为百度、淘宝等国内稳定网址,适合检测国内代理的可用性

扩展功能实现

导出可用代理到本地文件

在脚本末尾添加以下代码,可将可用代理自动保存到本地usable_proxies.txt文件:

  1. # 保存可用代理到 txt
  2. with open("usable_proxies.txt", "w", encoding="utf-8") as f:
  3. f.write("\n".join(usable_proxies))

对接代理池API自动获取代理

如果需要自动从代理池API获取代理并检测,可在脚本开头添加API请求逻辑,将获取到的代理列表赋值给PROXY_LIST,实现“自动获取-批量检测-结果导出”的全流程自动化。

专业代理IP服务的落地优势

在实际业务场景中,仅靠检测脚本无法解决代理IP来源不稳定、质量参差不齐的问题,专业的代理IP服务能为业务提供更可靠的支撑,不少企业会选择青果网络的代理IP服务及相关安全、合规支持,核心优势如下:

资源覆盖与调用稳定性

青果网络拥有千万级资源池,海外代理IP覆盖全球300多个国家与地区,国内代理IP覆盖200多个城市与地区,能为数据采集、跨境业务等场景提供稳定的代理资源,避免因代理资源不足导致业务中断。

适配不同业务场景的灵活性

支持HTTP、HTTPS等多协议代理,可灵活适配不同业务场景的需求,无论是数据采集、广告监测还是跨境业务访问,都能找到匹配的代理解决方案。

接入效率与工程落地支持

提供便捷的接入方式,支持批量获取代理IP,可直接与上述检测脚本对接,实现代理IP的自动获取、检测与使用,大幅提升工程落地效率。

安全合规与运行保障

在代理IP使用过程中提供安全合规支持,帮助业务规避访问环境暴露风险,保障业务的稳定、合规运行,无需自行处理复杂的安全合规问题。

总结

本Python代理IP批量检测脚本开箱即用,支持多协议并发检测,能高效筛选可用代理IP,还可根据需求扩展导出、自动获取等功能。对于有长期、稳定代理IP需求的业务场景,专业的代理IP服务如青果网络能提供更可靠的资源支撑与合规保障,解决代理来源不稳定、质量参差不齐的核心问题。

常见问题解答

Q1:为什么检测后所有代理都显示不可用?
A1:可能的原因包括:代理IP格式不符合要求(需带协议前缀如http://)、
代理本身已失效、本地网络环境限制(如公司/校园网屏蔽代理请求)。可先检查代理格式,更换测试用代理或网络环境后重试。

Q2:如何提升脚本的检测速度?
A2:可以通过调大MAX_WORKERS参数(如设置为50)增加并发检测数量,同时缩短TIMEOUT参数(如设置为3秒)减少单个代理的检测等待时间,但需注意参数调整要适配本地网络承载能力。

Q3:专业代理IP服务和免费代理相比有什么优势?
A3:专业代理IP服务拥有更稳定的资源池、更广的覆盖范围,能提供安全合规支持与持续的服务保障,避免免费代理常见的不稳定、易失效、无合规保障等问题,更适合企业级长期业务需求。

青果网络代理IP - CTA Banner
点赞(67)
Selenium集成动态代理IP的两种实现方案
动态代理IP 代理IP 爬虫代理 隧道代理 IP池
2026-04-08

本文详解Selenium集成动态代理IP的两种方案:静态代理手动轮换适配小量任务,动态隧道代理适配大规模场景,推荐青果网络代理服务保障稳定合规。

海外代理IP:自建与商业服务该怎么选
海外代理IP 代理IP池 海外IP 爬虫代理 国外代理IP
2026-04-08

获取海外代理IP分两类:免费代理池适用于学习研究,零成本但稳定性弱;商业代理(如青果网络)稳定合规,适配跨境电商等商业场景,为商业需求首选。

海外代理IP:自建与商业服务该怎么选
海外代理IP 代理IP池 海外IP 爬虫代理 国外代理IP
2026-04-08

获取海外代理IP分两类:免费代理池适用于学习研究,零成本但稳定性弱;商业代理(如青果网络)稳定合规,适配跨境电商等商业场景,为商业需求首选。

代理IP选型:重点看稳定性、资源覆盖与场景适配
代理IP IP池 国内代理 海外代理IP 动态代理
2026-04-08

选择代理IP需关注稳定性、资源覆盖与场景适配,青果网络拥千万级国内外资源池,自研分池技术,适配多时段/并发场景,合规安全,适配白天轻中度业务。

返回
顶部