import requests
import random
json_resp = requests.get('http://localhost:8899/api/v1/proxies?anonymous=true').json()
num = 0
while True:
try:
proxy = random.choice(json_resp['proxies'])
print(len(json_resp['proxies']))
content = requests.get('http://api.ipify.org', proxies={'http': 'http://{}:{}'.format(proxy['ip'], proxy['port'])},timeout=2).text
print(content)
break
except:
num += 1
print('失败%d次'% num)
pass
**该库自带校验机制,****ip****池动态更新;
经过校验(以上代码的校验)该库的使用效果不错,提供的高匿代理延时较低,可用性较高
后续问题发现:
我的是mac进程运行不够稳定,进程内部经常报错,从打印的信息来看,错误不少,最严重的错误数据库是空的,娶不到任何ip
scylla高匿代理二次校验模块完整版,生产环境直接Import使用:
import requests
import random
# 提取低延时高匿代理,传参你的公网ip
def proxy_test(ip):
num = 0
while True:
# 循环刷新数据库
json_resp = requests.get('http://localhost:8899/api/v1/proxies?anonymous=true').json()
# 判断数据库是否是空的
try:
# 随机选择,如果是空抛出异常
proxy = random.choice(json_resp['proxies'])
# 代理池的数量;
length = len(json_resp['proxies'])
print(length)
# 判断是否能低延时高匿成功
try:
content = requests.get('http://api.ipify.org',
proxies={'http': 'http://{}:{}'.format(proxy['ip'], proxy['port'])},
timeout=4).text
# 打印校验网址显示的代理
# print(content)
# 校验有没有高匿成功,ip为您本机的公网ip
if content == ip:
1 / 0
return content
except:
num += 1
print('失败%d次' % num)
if num >= length:
return 'no'
except:
print('代理数据库为空')
if __name__ == '__main__':
ip= proxy_test('116.236.168.138')
print(ip)
网友评论