86 lines
2.1 KiB
Python
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
|
|
|