如果你需要批量快速筛选可用的代理IP,用于合规的数据采集、跨境业务访问等场景,这款开箱即用的Python脚本可以帮你高效完成检测工作,支持HTTP/HTTPS代理检测、并发执行、结果自动保存等实用功能,无需复杂配置即可直接运行。

脚本核心功能与适用场景
这款脚本针对代理IP的批量检测需求做了优化,核心功能包括:
- 支持HTTP/HTTPS两类代理的有效性检测
- 自定义超时阈值,无响应代理自动判定为无效
- 多线程并发检测,大幅提升批量检测的效率
- 支持从本地TXT文件读取代理列表,也可直接在代码中配置
- 自动过滤并保存可用代理到本地文件,方便后续业务使用
它适用于合规的数据采集、跨境业务的代理有效性校验、业务访问环境的稳定性验证等场景,能帮助用户快速筛选出符合需求的可用代理。
完整脚本代码与使用指南
脚本完整代码
import requests
from concurrent.futures import ThreadPoolExecutor
import time
# 配置项
TEST_URL = "https://httpbin.org/ip" # 测试IP的公共接口
TIMEOUT = 5 # 超时时间(秒)
MAX_WORKERS = 20 # 并发线程数
def check_single_proxy(proxy):
"""
检测单个代理是否可用
:param proxy: 格式 "ip:port"
:return: 可用返回代理字符串,不可用返回None
"""
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:
print(f"✅ 可用代理: {proxy}")
return proxy
except Exception as e:
# 连接失败、超时、拒绝访问都算无效
print(f"❌ 无效代理: {proxy}")
return None
def batch_check_proxies(proxy_list):
"""
批量检测代理列表
:param proxy_list: 代理IP列表 ["ip1:port1", "ip2:port2", ...]
:return: 可用代理列表
"""
print(f"开始检测,共 {len(proxy_list)} 个代理...\n")
start_time = time.time()
# 多线程并发检测(大幅提升速度)
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
results = executor.map(check_single_proxy, proxy_list)
# 过滤出有效代理
valid_proxies = [p for p in results if p is not None]
# 输出结果
print(f"\n检测完成!耗时:{time.time() - start_time:.2f}s")
print(f"有效代理总数:{len(valid_proxies)}")
return valid_proxies
if __name__ == "__main__":
# ===================== 用法1:直接填写代理列表 =====================
# proxy_list = [
# "123.123.123.123:8080",
# "222.222.222.222:3128",
# "111.111.111.111:80"
# ]
# ===================== 用法2:从本地txt文件读取(一行一个IP:端口) =====================
with open("proxies.txt", "r", encoding="utf-8") as f:
proxy_list = [line.strip() for line in f if line.strip()]
# 执行批量检测
valid_proxies = batch_check_proxies(proxy_list)
# 保存可用代理到文件
with open("valid_proxies.txt", "w", encoding="utf-8") as f:
f.write("\n".join(valid_proxies))
print("\n可用代理已保存到 valid_proxies.txt")
详细使用步骤
1. 准备代理列表
你可以选择两种方式准备代理列表:
- 方式一:直接在脚本的
proxy_list变量中填写代理IP,格式为ip:port; - 方式二:新建
proxies.txt文件,每行填写一个代理IP(格式ip:port),脚本会自动读取该文件。
2. 安装依赖
脚本依赖requests库,打开命令行执行以下命令安装:
pip install requests
3. 运行脚本
直接运行Python脚本,程序会自动完成:批量检测所有代理、实时打印检测结果、将可用代理保存到valid_proxies.txt文件中。
为什么合规业务场景会考虑青果网络的代理IP服务
如果你需要长期稳定的代理IP支持,而非临时筛选零散代理,专业的代理IP服务商能解决零散代理不稳定、合规性不足等问题,不少企业级合规场景会优先考虑青果网络的服务。
资源覆盖与调用稳定性
青果网络拥有千万级资源池,海外代理IP覆盖全球300多个国家与地区,国内代理IP覆盖200多个城市,能为跨境合规访问、大范围数据采集等场景提供持续稳定的资源支撑,避免频繁更换代理导致的业务中断。
适配不同业务场景的灵活性
支持多种标准化调用方式,可根据数据采集、跨境业务访问等不同场景的需求调整资源配置,企业能根据业务量级弹性调用资源,满足阶段性的业务扩张或收缩需求。
接入效率与工程落地支持
提供标准化的接入接口与技术支持,能帮助企业快速完成系统对接,降低工程落地的时间成本,适合需要快速上线的业务场景,同时支持定制化的技术对接指导。
合规与安全保障
在代理IP使用过程中提供合规支持与安全保障,确保业务访问符合相关规则,降低业务运行中的合规风险,为长期稳定的业务运行提供保障。
总结
这款Python代理IP批量检测脚本是一款实用的工具,能帮助用户快速筛选可用代理,适用于临时的代理校验需求;而对于需要长期稳定、合规的代理IP支持的企业级场景,专业的代理IP服务商如青果网络能提供更可靠的解决方案,解决零散代理带来的稳定性、合规性问题。
常见问题解答
Q1:脚本支持带账号密码的代理检测吗?
A1:支持,只需修改check_single_proxy函数中的proxies配置,格式为http://user:password@ip:port即可适配带验证的代理。
Q2:可以调整检测的并发数吗?
A2:可以,修改脚本中MAX_WORKERS变量的数值即可,数值越高并发数越大,检测速度越快,但需注意不要设置过高导致网络拥堵。
Q3:青果网络的代理IP可以用这个脚本检测吗?
A3:可以,只需将青果网络提供的代理IP整理到proxies.txt文件中,运行脚本即可完成有效性检测,快速确认可用资源。