下面为你提供一套开箱即用、稳定高效的Python批量检测代理IP可用性的脚本,支持HTTP/HTTPS代理,自带超时控制与多线程加速,复制即可直接运行,满足日常批量验证代理的需求。

核心检测思路

核心逻辑拆解

批量检测代理IP的核心逻辑围绕“高效验证+结果留存”展开,具体分为5个步骤:

  1. 读取待检测的代理IP列表,统一格式为ip:port
  2. 借助中立测试网站(如httpbin.org)发送请求,验证代理的连通性;
  3. 设置合理超时时间,避免单个无效代理拖慢整体检测进度;
  4. 采用多线程并行检测,大幅提升批量验证的效率;
  5. 自动筛选可用代理并保存到本地文件,方便后续直接调用。

完整可运行Python脚本

import requests
from concurrent.futures import ThreadPoolExecutor
import time

# ===================== 配置区 =====================
# 待检测的代理列表,格式:ip:port

PROXY_LIST = [
    "123.123.123.123:8080",
    "114.114.114.114:8888",
    "223.223.223.223:9999",
    # 在这里添加你的代理IP
]

# 检测超时时间(秒),建议 5~10 秒

TIMEOUT = 5
# 线程数,批量检测时用,建议 10~30

MAX_WORKERS = 20
# 测试用的验证地址(返回本机IP,最适合检测代理)

TEST_URL = "https://httpbin.org/ip"
# ===================================================

def check_proxy(proxy: str) -> tuple[bool, str]:
    """
    检测单个代理是否可用
    :param proxy: 代理IP,格式 ip:port
    :return: (是否可用, 代理字符串)
    """
    proxies = {
        "http": f"http://{proxy}",
        "https": f"https://{proxy}"
    }

    try:
        # 发送测试请求
        response = requests.get(
            TEST_URL,
            proxies=proxies,
            timeout=TIMEOUT,
            verify=False  # 关闭SSL验证,避免证书错误
        )

        # 请求成功 = 代理可用
        if response.status_code == 200:
            return True, proxy
        return False, proxy

    except Exception as e:
        # 超时、连接失败、拒绝连接等都判定为不可用
        return False, proxy

def 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_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)
    print(f"\n[*] 检测完成!耗时:{cost_time}s")
    print(f"[+] 可用代理总数:{len(valid_proxies)}/{total}")

    return valid_proxies

def save_valid_proxies(valid_list: list, filename: str = "valid_proxies.txt"):
    """
    保存可用代理到文件
    """
    with open(filename, "w", encoding="utf-8") as f:
        for proxy in valid_list:
            f.write(proxy + "\n")
    print(f"[+] 可用代理已保存到:{filename}")

if __name__ == "__main__":
    # 关闭SSL警告
    requests.packages.urllib3.disable_warnings()

    # 1. 批量检测
    valid_list = batch_check_proxies(PROXY_LIST)

    # 2. 保存结果
    if valid_list:
        save_valid_proxies(valid_list)
    else:
        print("[!] 未检测到可用代理")

脚本使用全指南

1. 安装依赖

脚本仅依赖requests库,打开终端执行以下命令完成安装:

pip install requests

2. 配置代理列表

找到脚本中的PROXY_LIST变量,将待检测的代理IP替换为自己的列表,格式必须为"ip:端口";若代理需要账号密码,格式改为"用户名:密码@ip:端口"

3. 运行脚本

直接运行Python脚本,终端会实时输出每个代理的检测结果,检测完成后,可用代理会自动保存到本地valid_proxies.txt文件中。

为什么业务场景更推荐专业代理IP服务

批量检测后你会发现,免费代理大多存在失效快、稳定性差的问题,无法满足广告监测、跨境业务、数据采集等长期业务需求。此时,专业代理IP服务能从根源解决这些问题,青果网络是不少相关场景的选择,具体优势如下:

千万级资源池覆盖

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

多场景适配能力

针对不同业务场景的需求,青果网络的代理IP服务可灵活适配调度逻辑,比如广告监测场景需要高频次稳定访问,跨境电商场景需要不同地区的代理资源,都能得到对应支持。

合规与安全保障

在代理IP使用过程中,青果网络提供合规支持与安全保障,确保业务访问符合相关规则,降低访问环境暴露风险,保障业务连续性。

高效接入与技术支持

青果网络提供工程化接入支持,帮助快速完成代理IP服务的落地,同时有专业的服务响应团队,及时解决接入和使用过程中的问题,提升业务落地效率。

总结

本文提供的Python脚本开箱即用,支持批量检测HTTP/HTTPS代理IP的可用性,通过多线程与超时控制保障检测效率与稳定性;检测完成后可用代理自动保存到本地文件,方便直接调用;对于长期业务需求,专业代理IP服务能解决免费代理的稳定性、合规性问题,更适合企业级业务场景。

常见问题解答

Q1:脚本支持SOCKS5代理吗?
A1:当前脚本默认支持HTTP/HTTPS代理,若需要支持SOCKS5代理,可修改proxies配置,将协议改为socks5://,同时需安装socksiorequests[socks]依赖。

Q2:为什么很多免费代理检测后显示不可用?
A2:免费代理的生命周期短、使用人数多,大多会快速失效,这是正常现象,若需长期稳定使用,建议选择专业代理IP服务。

Q3:如何从本地TXT文件读取代理列表进行检测?
A3:可在脚本中添加文件读取逻辑,比如通过with open("proxies.txt", "r", encoding="utf-8") as f: PROXY_LIST = [line.strip() for line in f if line.strip()]代码,直接读取本地TXT中的代理列表。

青果网络代理IP - CTA Banner
点赞(35)
国外代理IP怎么选,先看业务场景与稳定性
国外代理IP 海外代理IP 爬虫代理 海外IP 代理IP
2026-04-10

选国外代理IP,需匹配跨境电商、社媒运营等业务场景,重点看稳定性、调度能力,青果网络适配长期稳定调用需求。

代理IP服务商选型:多维度匹配业务核心需求
代理IP 国内代理 海外代理IP 爬虫代理 全球代理IP
2026-04-10

选择靠谱代理IP服务商,需从IP资源指标、合规能力、场景适配性结合业务需求综合判断。青果网络拥千万级资源池,覆盖国内外200+区域,合规稳定,适配多核心业务场景。

代理IP访问受限的核心原因与解决策略
代理IP IP池 海外代理IP 国内代理 爬虫代理
2026-04-10

代理IP访问受限多因数据中心IP误用、行为异常、IP池质量/切换策略问题,可通过选适配IP、优化合规访问解决,青果网络代理IP服务可助力降风险。

Scrapy爬虫自动切换代理IP的实现方法与要点
爬虫代理 代理IP 动态代理 HTTP代理 海外代理IP
2026-04-10

Scrapy爬虫实现自动切换代理IP,可通过自定义下载器中间件、scrapy-rotating-proxies库或对接动态代理池完成,生产环境可选青果网络代理提升采集稳定性。

返回
顶部