
具体是想知道怎么求取sign值,使得翻译任何一个词都可以,还有代码还有什么错误吗?
sign值可不可以普遍求取
要有 id 和密钥的,可能不是免费的api接口
import requests
import random
import json
from hashlib import md5
def translate(word):
# Set your own appid/appkey.
appid = 你的appid'
appkey = '你的appkey'
# For list of language codes, please refer to `https://api.fanyi.baidu.com/doc/21`
from_lang = 'zh'
to_lang = 'en'
endpoint = 'http://api.fanyi.baidu.com'
path = '/api/trans/vip/translate'
url = endpoint + path
query = word
# Generate salt and sign
def make_md5(s, encoding='utf-8'):
return md5(s.encode(encoding)).hexdigest()
salt = random.randint(32768, 65536)
sign = make_md5(appid + query + str(salt) + appkey)
# Build request
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
payload = {'appid': appid, 'q': query, 'from': from_lang,
'to': to_lang, 'salt': salt, 'sign': sign}
# Send request
r = requests.post(url, params=payload, headers=headers)
result = r.json()
# Show response
print(result['trans_result'][0]['dst'])