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