打开 kookeey IP 代理平台,假如端口是 http://gate.kookeey.io:15959,账号: kookeey,密码: 12345678 )。
import urllib.request;
proxy = urllib.request.ProxyHandler({'https': 'http://kookeey:12345678@gate.kookeey.info:15959'})
opener = urllib.request.build_opener(proxy)
urllib.request.install_opener(opener)
content = urllib.request.urlopen('https://lumtest.com/myip.json').read();
print(content)# -*- coding: utf-8 -*-
import time
import base64
import requests
import hmac
import hashlib
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
class user(object):
def __init__(self):
super(user, self).__init__()
self.token = '开发者Token'
self.accessid = '开发者ID'
class r_method(object):
def __init__(self):
super(r_method, self).__init__()
def get(self):
self.interface = 'stockv2'
self.parameter = 'g=1'
return self
def post(self):
self.interface = 'setlang'
self.headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
self.parameter = 'lang=zh-CN'
return self
class KEKPROXY(object):
def __init__(self):
super(KEKPROXY, self).__init__()
self.session = requests.session()
self.user = user()
self.r_method = r_method()
def get_proxy(self):
ti = str(int(time.time()))
method = self.r_method.get()
param = method.parameter if hasattr(method, 'parameter') and method.parameter else None
if param:
sign_str = f'{param}&ts={ti}'
else:
sign_str = f'ts={ti}'
token_ = base64.b64encode(
hmac.new(
self.user.token.encode('utf-8'),
sign_str.encode('utf-8'),
hashlib.sha1
).hexdigest().encode('utf-8')
).decode('utf-8')
# 判断是否传参
if param:
url = f'https://www.kookeey.com/clientapi/{method.interface}?accessid={self.user.accessid}&signature={token_}&{param}&ts={ti}'
else:
url = f'https://www.kookeey.com/clientapi/{method.interface}?accessid={self.user.accessid}&signature={token_}&ts={ti}'
proxy = self.session.get(url, verify=False).text
print(proxy)
def post_proxy(self):
ti = str(int(time.time()))
r_post = self.r_method.post()
token_ = base64.b64encode(
hmac.new(
self.user.token.encode(),
f'ts={ti}'.encode(),
hashlib.sha1
).hexdigest().encode()
).decode()
key, value = r_post.parameter.split('=')
proxy = self.session.post(
f'https://www.kookeey.com/clientapi/{r_post.interface}?accessid={self.user.accessid}&signature={token_}&ts={ti}',
headers=r_post.headers,
data={key: value},
verify=False
).text
print(proxy)
if __name__ == '__main__':
KEKPROXY().get_proxy()
# KEKPROXY().post_proxy()