首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >5分钟,用Python自动验证免费代理可用性

5分钟,用Python自动验证免费代理可用性

原创
作者头像
永不掉线的小白
发布2026-05-09 09:54:09
发布2026-05-09 09:54:09
200
举报

作为经常写爬虫、做网络测试的人,我每天都会接触免费代理——但免费代理的可用率通常低于5%,手动一个个测试太浪费时间,今天就教大家用Python写一个简单脚本,5分钟搞定代理可用性验证,全程实战、通俗易懂,新手也能直接上手。

核心需求很简单:输入一批免费代理(IP+端口),自动检测每个代理是否能正常使用,输出可用代理清单,不用手动访问测试,效率直接拉满。

一、前置准备

只需要2个基础工具,提前准备好,避免编码时卡壳:

  1. 环境:Python 3.7+(建议3.9,兼容性最好,安装后直接默认配置环境变量);
  2. 依赖库:requests(用于发送测试请求),终端输入一行命令即可安装:pip install requests

补充:免费代理可以从66daili 免费代理等公开网站获取,复制下来保存好,后续直接用到脚本里即可。以下是常见且实用的免费代理网站,可直接访问获取代理:

常见免费代理网站

  • 66免费代理(66daili资源更新稳定,支持按地区筛选);
  • Spys.one(老牌站点,界面复古但资源更新快,支持按国家、协议筛选);
  • ProxyScrape(每小时更新公开代理池,支持HTTP/HTTPS/Socks4/Socks5多种类型,可按速度筛选);
  • FreeProxyList.net(直截了当,以表格形式列出IP、端口、类型和存活时间,无需注册);
  • Geonode(按国家分类的开放代理,适合需要特定地区代理的场景)。

二、核心编码

全程复制粘贴即可,我会逐行注释,让大家明白每一步的作用,不搞复杂逻辑,聚焦“能用、好用”。

新建一个Python文件(比如proxy_check.py),输入以下代码,直接替换代理列表即可使用:

代码语言:javascript
复制
import requests

# 1. 替换成你获取的免费代理列表(格式:http://IP:端口)
proxy_list = [
    "http://123.45.67.89:8080",
    "http://111.222.33.44:3128",
    "http://55.66.77.88:80",
    # 可继续添加更多代理,一行一个
]

# 2. 测试代理的核心函数(超时时间设为5秒,避免长时间等待)
def check_proxy(proxy):
    # 测试地址用httpbin.org,会原样返回请求信息,适合验证代理是否生效
    test_url = "http://httpbin.org/ip"
    try:
        # 用当前代理发送请求,设置超时时间
        response = requests.get(test_url, proxies={"http": proxy, "https": proxy}, timeout=5)
        # 状态码200说明代理可用,返回True和响应时间
        if response.status_code == 200:
            response_time = round(response.elapsed.total_seconds(), 2)
            return True, response_time
    except Exception:
        # 出现任何异常(超时、连接失败等),说明代理不可用
        return False, None

# 3. 批量验证所有代理,输出可用结果
if __name__ == "__main__":
    print("开始验证代理可用性,共{}个代理...\n".format(len(proxy_list)))
    available_proxies = []  # 存储可用代理
    for proxy in proxy_list:
        is_available, response_time = check_proxy(proxy)
        if is_available:
            print(f"✅ 代理可用:{proxy},响应时间:{response_time}秒")
            available_proxies.append((proxy, response_time))
        else:
            print(f"❌ 代理不可用:{proxy}")
    
    # 最后输出可用代理汇总
    print("\n✅ 验证完成!可用代理共{}个:".format(len(available_proxies)))
    for proxy, response_time in available_proxies:
        print(f"代理:{proxy},响应时间:{response_time}秒")

三、运行测试

步骤超简单,全程不用复杂操作:

  1. 打开终端(Windows按Win+R输入cmd,Mac打开终端);
  2. 切换到Python文件所在的文件夹(比如文件在桌面,输入 cd Desktop);
  3. 输入命令运行脚本:python proxy_check.py
  4. 等待10-30秒(取决于代理数量),终端会直接输出每个代理的状态,以及最终可用的代理清单。

实测:10个免费代理,通常只有1-2个可用,脚本会自动筛选,省去手动测试的麻烦。

四、实用优化

如果代理数量多,想提高验证速度,可以添加多线程(不用改核心逻辑,直接添加代码),代码如下(插入到原脚本中即可):

代码语言:javascript
复制
from concurrent.futures import ThreadPoolExecutor

# 替换原有的批量验证代码,用多线程加速
if __name__ == "__main__":
    print("开始验证代理可用性,共{}个代理...\n".format(len(proxy_list)))
    available_proxies = []
    # 开启5个线程,可根据电脑配置调整数量
    with ThreadPoolExecutor(max_workers=5) as executor:
        # 批量执行验证任务
        results = executor.map(check_proxy, proxy_list)
        for proxy, (is_available, response_time) in zip(proxy_list, results):
            if is_available:
                print(f"✅ 代理可用:{proxy},响应时间:{response_time}秒")
                available_proxies.append((proxy, response_time))
            else:
                print(f"❌ 代理不可用:{proxy}")
    # 汇总输出(和原脚本一致)
    print("\n✅ 验证完成!可用代理共{}个:".format(len(available_proxies)))
    for proxy, response_time in available_proxies:
        print(f"代理:{proxy},响应时间:{response_time}秒")

五、注意事项

  • 免费代理稳定性差,可用时间短,验证完建议立即使用,不适合生产环境(生产建议用付费代理);
  • 测试地址建议避免用可能有反爬的网站,防止误判代理可用性;
  • 如果运行报错“no module named requests”,说明requests库没安装成功,重新执行安装命令即可。

整个流程下来,从准备到运行,全程不超过5分钟,脚本可重复使用,后续获取新的免费代理,直接替换proxy_list里的内容,运行即可筛选可用代理。对于爬虫测试、临时访问等场景,完全够用,新手也能轻松上手~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前置准备
    • 常见免费代理网站
  • 二、核心编码
  • 三、运行测试
  • 四、实用优化
  • 五、注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档