代码拉取完成,页面将自动刷新
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import uuid
import urllib.parse
import hmac
import hashlib
import base64
from datetime import datetime
from dateutil import tz
import myConfig
import ProxyBY
def DNS_Return(key):
'''
所有有关DNS的请求通过这里发出
:param key:
:return:
'''
return __getReturn(key,myConfig.DNSgetUrl)
def __getReturn(key,myurl):
if net_State(LocalNet()):
print(u'使用本地连接')
mystr=__get_QueryStr(key)
myurl+=mystr
r=LocalNet(myurl)
r.encoding=myConfig.ENCODING
return r.text
if net_State(ProxyNet()):
print(u'使用代理连接')
mystr=__get_QueryStr(key)
myurl+=mystr
r=ProxyNet(myurl)
r.encoding=myConfig.ENCODING
return r.text
return ''
def __get_QueryStr(inputDic):
inputDic['Format']=myConfig.retFormat
inputDic['Version']=myConfig.version
inputDic['SignatureMethod']=myConfig.SignatureMethod
inputDic['SignatureNonce']=str(uuid.uuid4())
inputDic['SignatureVersion']=myConfig.SignatureVersion
inputDic['AccessKeyId']=myConfig.accesskeyID
inputDic['Timestamp']=__get_ISO8601utc()
#print(inputDic)
stringToSign = __get_stringToSign(inputDic)
#print(stringToSign)
signature=__get_sha1(stringToSign)
inputDic['Signature'] = signature
#print(urllib.parse.urlencode(inputDic))
return urllib.parse.urlencode(inputDic)
def __get_ISO8601utc():
# t1=time.strftime('%Y-%m-%dT%H:%M:%SZ',time.localtime(time.time()))
# print(t1)
# UTC Zone
from_zone = tz.gettz(myConfig.TimeZone)
utc = datetime.utcnow()
# Tell the datetime object that it's in UTC time zone
utc = utc.replace(tzinfo=from_zone)
t = datetime.strftime(utc, myConfig.TimeFormat)
#print(t)
return t
def __get_stringToSign(inputDic):
newkey = sorted(inputDic.items(), key=lambda x: x[0])
#print('newkey:',newkey)
canstring = ''
for k, v in newkey:
canstring += '&' + __percentEncode(k) + '=' + __percentEncode(v)
#print(canstring)
stringToSign = myConfig.HTTP_METHOD + myConfig.SEPARATOR + '%2F&' + __percentEncode(canstring[1:])
return stringToSign
def __get_sha1(stringToSign):
Token = bytes(myConfig.accesspasswd + "&", encoding=myConfig.ENCODING)
Data = bytes(stringToSign, encoding=myConfig.ENCODING)
h = hmac.new(Token, Data, hashlib.sha1).digest()
signature = base64.encodebytes(h).strip()
signature = str(signature, encoding=myConfig.ENCODING)
return signature
def __percentEncode(value):
value=str(value)
res = urllib.parse.quote(value)
res = res.replace('+', '%20')
res = res.replace('*', '%2A')
res = res.replace('%7E', '~')
return res
def net_State(req):
req.encoding = 'gb2312'
#print(req.text)
if '您的' in req.text:
return True
return False
def ProxyNet(url=myConfig.ProxyTestURL):
p = ProxyBY.myProxy()
p.CreatProxyHandler()
req = p.ProxyUrl(url)
return req
def LocalNet(url=myConfig.ProxyTestURL):
req=requests.get(url)
return req
#print(ProxyNet().text)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。