python有道翻译接口-python爬取有道翻译接口

#爬取有道翻译接口

def youdao(word):

import hashlib

import requests

import time

import random

import re

appVersion = '5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'

#浏览器调试后发现ts是时间戳

ts = str(int(time.time()*1000))

#bv是请求头里面浏览器的信息经过MD5加密

bv = hashlib.md5(appVersion.encode('utf-8')).hexdigest()

#salt是时间戳后面随机加一位数字[0,9]

salt = ts + str(random.randint(0,9))

sign_str = "fanyideskweb" + word + salt + "@6f#X3=cCuncYssPsuRUE"

#sign是上面这个字符串MD5后的结果

sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest()

# print(ts)

# print(bv)

# print(salt)

#request请求地址

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'

#请求头

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":"258",

"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",

"Cookie":"OUTFOX_SEARCH_USER_ID=1011964969@10.169.0.83; JSESSIONID=aaa2xaVAnC78n4KVSHwUw; OUTFOX_SEARCH_USER_ID_NCOO=280669685.8154466; ___rl__test__cookies=1561601226382",

"Host":"fanyi.youdao.com",

"Origin":"http://fanyi.youdao.com",

"Referer":"http://fanyi.youdao.com/",

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36",

"X-Requested-With":"XMLHttpRequest"

}

#请求数据,json字符串,其中salt,sign,ts,bv的值每次请求都会变

data = {

"i":word,

"from":"AUTO",

"to":"AUTO",

"smartresult":"dict",

"client":"fanyideskweb",

"salt":salt,

"sign":sign,

"ts":ts,

"bv":bv,

"doctype":"json",

"version":"2.1",

"keyfrom":"fanyi.web",

"action":"FY_BY_CLICKBUTTION"

}

response = requests.post(url, data=data, headers=headers)

ret = response.text

#正则匹配到需要的翻译结果

retRegex = re.compile(r'"translateResult":(.*),"errorCode".*')

translateResult = retRegex.search(ret).group(1)

return translateResult

while True:

word = input("请输入你需要翻译的词汇(回车退出):")

if word == '':

break

else:

print(youdao(word))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值