批量验证代理 IP的骚姿势

本文探讨了如何高效且节省流量地验证大量免费代理IP的健康状态,分享了从直接使用requests到采用socket库、streamingResponse、head请求等多种策略的实践心得,并介绍了通过检查端口开放状态和HTTP头部来快速筛选有效代理的方法。

批量验证代理 IP的骚姿势

1.引出问题

Q:有什么特别省流量, 速度特别快, 结果也比较正确的校验一堆免费代理是否健康的通用方式? 这个问题两年前问过, 现在想再看看有没有新的思路

2.过来人的经验

1.==

  1. 刚学编程那会, 直接给 requests 无脑挂上代理去请求的
  2. 后来发现可以先用内置的 socket 库去连一连那个代理, timeout 设置的很小就可以先筛一轮无效 IP
  3. 后来觉得为了省流量, 改成 streaming Response 获取 1 ~ 5 KB 就断开
  4. 后来觉得 head 请求或者 options 请求也应该能试试连接是否通畅
  5. 后来觉得应该有一个连接成功率的东西存在, 所以每次发 5 个请求, 计算成功请求的占比
  6. 再后来觉得只发 head 请求不能证明 get 请求是 OK 的… 所以又改为了流式请求比较前 1 KB 的数据, 顺便记录上请求时间
  7. 再后来看了下一些 star 挺多的代理池代码, 貌似大部分人就是普通的对 baidu 发了个 get 请求, 然后也不验证返回的数据, 甚至也没使用 streaming, 就是判断下 status_code 是不是 200
  8. 现在想看看有没有什么特别一点的思路, 比如先对 IP 握个手 SYN?

来源v2ex

3.特别思路

  1. @eelinglucky:https://github.com/mingcheng/proxypool/blob/master/model/proxy.go#L66

    节省流量角度考虑的话,先看下端口是不是开放,然后测试 HTTP 拿头和 Response Code 是不是 200 就 OK
    了。

    其实,个人觉得这个场景下可用的代理也是有时效性的,所以即便检查了使用的时候也有可能跪了,因此拿到 IP 列表的时候进行弱检查就可以了,使用的时候设置重试切换次数。

  2. @oott123:别的不知道,但你要响应足够小,可以试试:

    g.cn/generate_204
    www.google.com/generate_204
    www.qualcomm.cn/generate_204

    都是支持 http / https 的,而且都很能扛并发

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值