littlepythonsheep/proxy_pool.py
2024-01-26 18:05:13 +08:00

86 lines
2.1 KiB
Python

import requests, json
import IP2Location
def get_proxy():
# http: // demo.spiderpy.cn / get /
return requests.get("http://proxy-pool.speedcow.top/get/").json().get("proxy")
def delete_proxy(proxy):
requests.get("http://proxy-pool.speedcow.top/delete/?proxy={}".format(proxy))
def pop_proxy():
return requests.get("http://proxy-pool.speedcow.top/pop/").json().get("proxy")
def check_proxy(proxy):
try:
res = requests.get('http://github.com', proxies={"http": "http://{}".format(proxy)}, timeout=1)
print(res.json())
return True
except:
return False
def ip_api(proxy):
try:
res = requests.get('http://ip-api.com/json/', proxies={"http": "http://{}".format(proxy)}, timeout=1)
return res.json()['status'] == 'success'
except:
return False
def getHtml():
# ....
global res
retry_count = 5
proxy = get_proxy()
while retry_count > 0:
try:
res = requests.get('http://baidu.com', proxies={"http": "http://{}".format(proxy)})
# 使用代理访问
print(res.json())
return
except Exception:
retry_count -= 1
# 删除代理池中代理
print(proxy)
delete_proxy(proxy)
return None
def is_gpt4(access_token):
headers = {
"Authorization": "Bearer " + access_token,
"Content-Type": "application/json"
}
url = "https://ai.fakeopen.com/api/models"
proxy = get_proxy()
proxies = {"http": "http://{}".format(proxy)}
resp = requests.get(url, headers=headers, proxies=proxies)
if resp.status_code == 200:
res = resp.json()
if 'models' not in res:
print('获取models失败')
return False
models = res['models']
for model in models:
if model['slug'].find('gpt-4') != -1:
print('获取到gpt-4模型')
return True
else:
return False
return False
if __name__ == '__main__':
count = 0
while True:
proxy = get_proxy()
if ip_api(proxy):
print(proxy)
count += 1
if count > 10:
break