Python3 呼叫百度翻譯
阿新 • • 發佈:2018-11-16
OS: win 7 + python 3.7
適用於翻譯多條英文短句。
使用
- 下載並安裝 Python3.7
- 安裝引用包
- pip install urllib3 & openpyxl
- 官網使用的包http.client返回的是整個頁面的原始碼,改為urllib,3.7版本中包名改為urllib3
- openpyxl是python操作excel的包
- pip install urllib3 & openpyxl
- 引數調整
- 見原始碼: Git hub
- 百度翻譯官方API文件
- 申請翻譯API服務
- 已登入百度賬號的使用者,點選“立即使用”,註冊成為開發者,即可獲得APPID和金鑰資訊;同一個賬戶或手機號碼僅能申請一組APPID和金鑰資訊,該APPID和金鑰資訊可用於多項服務呼叫。
原始碼
#/usr/bin/env python #coding=utf8 import hashlib import random import openpyxl from openpyxl import Workbook import json import urllib.request print('translate begin...') #set parameter appid = '2015063000000001' secretKey = '12345678' fromLang = 'en' # 源語言 toLang = 'zh' # 翻譯後的語言 srcFilename = 'c:\_Work\chinesetranslation.xlsx' srcColumn=3 srcRowBegin=121 srcRowEnd=207 srcSheet = 'Sheet1' desFilename = 'c:\_Work\chinesetranslation_result.xlsx' desColumn=1 desSheet = 'result' def translateBaidu(content): apiurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate' q = content salt = random.randint(32768, 65536) sign = str(appid) + q + str(salt) + secretKey sign = hashlib.md5(sign.encode("utf-8")).hexdigest() myurl = apiurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign try: paramas = { 'q':q, 'from':'zh', 'to':'en', 'appid':'%s'%appid, 'salt':'%s'%salt, 'sign':'%s'%sign } response = urllib.request.urlopen(myurl) jsonResponse = response.read()# 獲得返回的結果,結果為json格式 js = json.loads(jsonResponse) # 將json格式的結果轉換字典結構 dst = str(js["trans_result"][0]["dst"]) # 取得翻譯後的文字結果 return dst except Exception as e: print(e) wb = openpyxl.load_workbook(srcFilename) ws = wb[srcSheet] wb2 = Workbook() ws2 = wb2.create_sheet(title=desSheet) for i in range (srcRowBegin,srcRowEnd,1): result=ws.cell(row=i, column=srcColumn).value if not (result is None): ws2.cell(row=i-srcRowBegin+1,column=desColumn).value = translateBaidu(result) wb2.save(desFilename) print('ending...')