python3實現簡單的google翻譯調用,第二版
https://download.csdn.net/download/weixin_42152696/10646652
手把手教你調google翻譯接口,旁的話不多說,直接上重點內容。
注意幾點:使用之前先安裝第三方庫,還有一個,def get_tk(text,tkk=‘426538.4063001528’) 這裏面的kk值請自行做計算,根據我之前使用的情況來看,這個值基本上不會發生變動,對於這個kk值,我這裏不再多做敘述,我只提供最好用的實戰部分。
# -*- coding: utf-8 -*-
import execjs
import requests
import json
import urllib3.contrib.pyopenssl
#----------------------------------
#這裏的tkk值需要進行後期喜歡,需要根據tkk.js這個文件進行計算操作,具體的計算請使用node js去進行,命令行就能搞定
def get_tk(text,tkk='426538.4063001528'):
jsstr = get_js()
ctx = execjs.compile(jsstr) #加載JS文件
return (ctx.call('tk',text,tkk)) #調用js方法 第一個參數是JS的方法名,後面的data和key是js方法的參數
def get_js():
f = open("tk.js", 'r', encoding='utf-8') # 打開JS文件
line = f.readline()
htmlstr = ''
while line:
htmlstr = htmlstr+line
line = f.readline()
return htmlstr
def write_txt(file_name,info):
fp = open(file_name, "a",encoding='utf-8') # 打開一個文本文件
fp.write(info+'\n') # 寫入數據
fp.close() # 關閉文件
def google_tran(from_lang, to_lang, tran_text):
tk = get_tk(tran_text)
url = "https://translate.google.cn/translate_a/single?client=t&sl=" + from_lang + "&tl=" + to_lang + "&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&source=btn&ssel=3&tsel=3&kc=0&tk=" + tk + "&q=" + tran_text
file_name = "tran.txt"
txt_file_path = file_name
# requests.packages.urllib3.disable_warnings()
# r = requests.get(url ,verify=False ,headers={'Connection':'close'})
# requests.adapters.DEFAULT_RETRIES = 5
# s = requests.session()
# s.keep_alive = False
#免費代理使用網站
#http://ip.zdaye.com/shanghai_ip.html#Free
s = requests.session()
# url = "https://mail.163.com/"
s.keep_alive = False
#這裏寫的是代理,自主去發揮內容
#s.proxies = {"http": "ip:端口" }
s.headers = {'Connection':'close'}
r = s.get(url)
with open(txt_file_path, "wb") as code:
code.write(r.content)
try:
byte_to_string = str(r.content, encoding="utf-8")
string_to_list = json.loads(byte_to_string)
return string_to_list
except Exception as e:
print(e)
return ""
'''
調用範例:
from_lang = "zh-CN"
to_lang = "en"
tran_text = "大家好"
result = google_tran(from_lang, to_lang, tran_text)
print(len(result))
print(result[0][0][0])
print('ok')
en 英語
tr 土語
uz 烏語
'''
if __name__ == '__main__':
from_lang = "zh-CN"
to_lang = "uz"
tran_text = "你好"
result = google_tran(from_lang, to_lang, tran_text)
print(len(result))
print(result[0][0][0])
print('ok')