python3調(diào)用百度翻譯API實(shí)現(xiàn)實(shí)時(shí)翻譯
今天需要做一個(gè)翻譯的工具,找到之前寫過(guò)的有道翻譯,已經(jīng)不能用了,最后看到百度翻譯還不錯(cuò),不過(guò)官方版本是Python2,我需要Python3,就自己寫了一個(gè):
# coding: utf8 ''' @Author: LCY @Contact: lchuanyong@126.com @blog: http://http://blog.csdn.net/lcyong_ @Date: 2018-01-15 @Time: 19:19 說(shuō)明: appid和secretKey為百度翻譯文檔中自帶的,需要切換為自己的 python2和python3部分庫(kù)名稱更改對(duì)應(yīng)如下: httplib ----> http.client md5 ----> hashlib.md5 urllib.quote ----> urllib.parse.quote 官方鏈接: http://api.fanyi.baidu.com/api/trans/product/index ''' import http.client import hashlib import json import urllib import random def baidu_translate(content): appid = '20151113000005349' secretKey = 'osubCEzlGjzvw8qdQc41' httpClient = None myurl = '/api/trans/vip/translate' q = content fromLang = 'zh' # 源語(yǔ)言 toLang = 'jp' # 翻譯后的語(yǔ)言 salt = random.randint(32768, 65536) sign = appid + q + str(salt) + secretKey sign = hashlib.md5(sign.encode()).hexdigest() myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote( q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str( salt) + '&sign=' + sign try: httpClient = http.client.HTTPConnection('api.fanyi.baidu.com') httpClient.request('GET', myurl) # response是HTTPResponse對(duì)象 response = httpClient.getresponse() jsonResponse = response.read().decode("utf-8")# 獲得返回的結(jié)果,結(jié)果為json格式 js = json.loads(jsonResponse) # 將json格式的結(jié)果轉(zhuǎn)換字典結(jié)構(gòu) dst = str(js["trans_result"][0]["dst"]) # 取得翻譯后的文本結(jié)果 print(dst) # 打印結(jié)果 except Exception as e: print(e) finally: if httpClient: httpClient.close() if __name__ == '__main__': while True: print("請(qǐng)輸入要翻譯的內(nèi)容,如果退出輸入q") content = input() if (content == 'q'): break baidu_translate(content)
官方版本:
#/usr/bin/env python #coding=utf8 import httplib import md5 import urllib import random appid = '20151113000005349' secretKey = 'osubCEzlGjzvw8qdQc41' httpClient = None myurl = '/api/trans/vip/translate' q = 'apple' fromLang = 'en' toLang = 'zh' salt = random.randint(32768, 65536) sign = appid+q+str(salt)+secretKey m1 = md5.new() m1.update(sign) sign = m1.hexdigest() myurl = myurl+'?appid='+appid+'&q='+urllib.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign try: httpClient = httplib.HTTPConnection('api.fanyi.baidu.com') httpClient.request('GET', myurl) #response是HTTPResponse對(duì)象 response = httpClient.getresponse() print response.read() except Exception, e: print e finally: if httpClient: httpClient.close()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python如何調(diào)用php文件中的函數(shù)詳解
這篇文章主要給大家介紹了關(guān)于python如何調(diào)用php文件中函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python實(shí)現(xiàn)的Excel文件讀寫類
這篇文章主要介紹了Python實(shí)現(xiàn)的Excel文件讀寫類,涉及Python針對(duì)Excel常見(jiàn)的讀寫、打印等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07刪除DataFrame中值全為NaN或者包含有NaN的列或行方法
今天小編就為大家分享一篇?jiǎng)h除DataFrame中值全為NaN或者包含有NaN的列或行方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Python數(shù)據(jù)分析之pandas比較操作
比較操作是很簡(jiǎn)單的基礎(chǔ)知識(shí),不過(guò)Pandas中的比較操作有一些特殊的點(diǎn),本文介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助.需要的朋友可以參考下2021-05-05Python實(shí)現(xiàn)數(shù)據(jù)集劃分(訓(xùn)練集和測(cè)試集)
這篇文章主要為大家詳細(xì)介紹了Python是如何實(shí)現(xiàn)數(shù)據(jù)集劃分的,分為訓(xùn)練集和測(cè)試集,文中的實(shí)現(xiàn)方法講解詳細(xì),感興趣的小伙伴可以了解一下2023-05-05python字符串加密解密的三種方法分享(base64 win32com)
這篇文章主要介紹了python字符串加密解密的三種方法,包括用base64、使用win32com.client、自己寫的加密解密算法三種方法,大家參考使用吧2014-01-01python寫入文件自動(dòng)換行問(wèn)題的方法
這篇文章主要介紹了python寫入文件自動(dòng)換行問(wèn)題的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python計(jì)算開(kāi)方、立方、圓周率,精確到小數(shù)點(diǎn)后任意位的方法
今天小編就為大家分享一篇Python計(jì)算開(kāi)方、立方、圓周率,精確到小數(shù)點(diǎn)后任意位的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07