您的位置:首页 > 其它

爬虫之加salt加sign

2019-03-20 22:32 197 查看
import requests,json,time,random
import hashlib

#加密函数
def getmd5(sign):
#创建md5对象
md5_obj = hashlib.md5()
#对sign进行加密
md5_obj.update(bytes(sign,encoding="utf-8"))
#16位加密
sign = md5_obj.hexdigest()
return sign

def youdao(kw):

base_url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
#生成salt
# date_time = time.time()
# print(date_time)

salt = str(int(time.time()*1000)) + str(random.randint(0,9))
#生成sign
sign = "fanyideskweb" + kw + salt + "1L5ja}w$puC.v_Kz3@yYn"
sign = getmd5(sign)
# 定义携带的参数
data = {
"i":kw,
# "from":"AUTO",
# "to":"AUTO",
# "smartresult":"dict",
"client":"fanyideskweb",
"salt":salt,
"sign":sign,
# "ts":"1553065142622",
# "bv":"9ef61dc3d2f65f61d71a16bd47c6e9ee",
# "doctype":"json",
# "version":"2.1",
"keyfrom":"fanyi.web",
# "action":"FY_BY_REALTlME",
# "typoResult":"false",
}
#定义请求头
headers={
"Accept": "application/json, text/javascript, */*; q=0.01",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"Connection": "keep-alive",
"Content-Length": str(len(data)), #指的是参数的长度
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"Cookie": "P_INFO=m18810617317@163.com|1552353980|0|other|00&99|null&null&null#bej&null#10#0#0|188317&1||18810617317@163.com; OUTFOX_SEARCH_USER_ID=1353111487@10.169.0.84; JSESSIONID=aaa8kmg1nVzpt5tla5zMw; OUTFOX_SEARCH_USER_ID_NCOO=1137096409.8408787; ___rl__test__cookies=1553065142611",
"Host": "fanyi.youdao.com",
"Origin": "http://fanyi.youdao.com",
"Referer": "http://fanyi.youdao.com/",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",
"X-Requested-With": "XMLHttpRequest",
}

#发出请求
#如果不加headers,服务器默认是爬虫访问,会进行屏蔽
response = requests.post(base_url,data=data,headers=headers)

#接收json格式的数据
json_data = response.json()
print(type(json_data),json_data)

# str_data = json.dumps(json_data)
# print(str_data)

if __name__ == '__main__':
while True:
kw = input("请输入需要翻译的内容:")
#     kw = 'java'
youdao(kw)

'''
分析:
i: java

client: fanyideskweb
salt: 15530674778150
sign: 3dacc5fe58915da9f8020348f3d440c8

keyfrom: fanyi.web

salt = o.salt
o = r.generateSaltSign(t); t输入的关键字

‘’’

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: