工作需要进行批量翻译。调用百度翻译api接口,获取appid和secretKey
import http
import hashlib
import urllib.request
import random
import json
import pymysql
def baidufanyi(eachLine,id,sql,cur):
result=[]
appid = '' #参考百度翻译后台,申请appid和secretKey
secretKey = ''
httpClient = None
myurl = '/api/trans/vip/translate'
q = eachLine.strip()
fromLang = 'zh' #中文
toLang = 'en' #英文
salt = random.randint(32768, 65536)
sign = appid+q+str(salt)+secretKey
sign = sign.encode('UTF-8')
m1 = hashlib.md5()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
httpClient.request('GET', myurl)
response = httpClient.getresponse()
html= response.read().decode('UTF-8')
target2 = json.loads(html)
src = target2["trans_result"][0]["dst"]
print(src)
result.append((src,id))
cur.executemany(sql, result)
conn.commit()
if __name__=="__main__":
conn = pymysql.connect(host='192.168.1.188', user='root', passwd='123456', db='hs_code',
port=3306, charset='utf8',
cursorclass=pymysql.cursors.DictCursor)
cur = conn.cursor()
sql1 = 'select ,g_name from 表名 '
sql = 'update 表名并 set baidu=%s where `hscode_id`=%s'
cur.execute(sql1)
url_list = cur.fetchall()
for i in url_list:
baidufanyi(i['g_name'],i['id'],sql,cur)