Python3 動手自己寫谷歌翻譯

2021-08-28 03:56:38 字數 3352 閱讀 5966

本篇為實現谷歌翻譯的功能,在編寫的時候以為只是乙個介面的問題。

沒想到的是每次翻譯都會觸發一次js的執行,在請求引數中生成乙個tk。

文中tk的實現是復用的網上大神的**生成tk。

好了,不說了直接看**吧!

1 # /usr/bin/env python

2 # -*- coding: utf-8 -*-

3 import urllib.parse

4 import execjs,requests,termcolor

5 6 class return_tk():

7 8 def __init__(self):

9 self.ctx = execjs.compile("""

10 function tl(a)

27 a = b;

28 for (f = 0; f < e.length; f++) a += e[f],

29 a = rl(a, $b);

30 a = rl(a, zb);

31 a ^= b1 || 0;

32 0 > a && (a = (a & 2147483647) + 2147483648);

33 a %= 1e6;

34 return a.tostring() + jd + (a ^ b)

35 };

36 37 function rl(a, b)

46 return a

47 }

48 """)

49 50 def gettk(self, text):

51 return self.ctx.call("tl", text)

52 53 def open_url(url):

55 req = requests.get(url=url, headers=headers)

56 return req.content.decode('utf-8')

57 58 def max_length(content):

59 if len(content) > 4891:

60 print("翻譯文字超過限制!")

61 return

62 63 def print_result(parm):

64 result = parm

65 str_end = result.find("\",")

66 if str_end > 4:

67 print("翻譯的結果為:",result[4:str_end])

68 69 def en_to_zn_translate(content, tk):

70 max_length(content)

71 content = urllib.parse.quote(content)

72 #英譯漢

73 url = "" \

74 "&sl=en&tl=zh-cn&hl=zh-cn&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca" \

75 "&dt=rw&dt=rm&dt=ss&dt=t&ie=utf-8&oe=utf-8&clearbtn=1&otf=1&pc=1" \

76 "&srcrom=0&ssel=0&tsel=0&kc=2&tk=%s&q=%s" % (tk, content)

77 result = open_url(url)

78 print_result(result)

79 80 def zn_to_en_translate(content,tk):

81 max_length(content)

82 content = urllib.parse.quote(content)

83 #漢譯英

84 url = ""\

85 "&sl=zh-cn&tl=en&hl=zh-cn&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca"\

86 "&dt=rw&dt=rm&dt=ss&dt=t&ie=utf-8&oe=utf-8"\

87 "&source=btn&ssel=3&tsel=3&kc=0&tk=%s&q=%s"%(tk,content)

88 result = open_url(url)

89 print_result(result)

90 91 def main():

92 js = return_tk()

93 while true:

94 print(termcolor.colored("請先輸入要進行的操作:q表示退出;e表示英文翻譯成中文;z表示中文翻譯成英文。","red"))

95 change = input("請選擇翻譯選項:")

96 if change == 'q':

97 break

98 elif change == 'e':

99 content = input("請輸入要翻譯的英文:")

100 tk = js.gettk(content)

101 en_to_zn_translate(content,tk)

102 elif change == 'z':

103 content = input("請輸入要翻譯的中文:")

104 tk = js.gettk(content)

105 zn_to_en_translate(content,tk)

106 else:

107 print("請輸入正確的選項!")

108

109 main()

見執行效果:

總結:從**上來看,寫的比較簡潔,沒有高大上的寫法,只是單純的實現乙個功能。

除了tk的生成封裝成了類,其他的全部是用函式式程式設計實現。

Python3 動手自己寫谷歌翻譯

本篇為實現谷歌翻譯的功能,在編寫的時候以為只是乙個介面的問題。沒想到的是每次翻譯都會觸發一次js的執行,在請求引數中生成乙個tk。文中tk的實現是復用的網上大神的 生成tk。好了,不說了直接看 吧!1 usr bin env python 2 coding utf 8 3import urllib....

自己動手用python寫豆瓣FM

以前裝過幾次ubuntu,但總是因為缺少一些軟體工具而最終不得不回到windows下。最近又迷上了ubuntu,逐漸從windows系統轉戰ubuntu。這次,openfetion wineqq chrome,還有wps等軟體為這次過度打下了堅實的基礎。希望能夠成為乙個忠實的linux開源愛好者。閒...

python3實現谷歌翻譯

quad 中文轉英文的翻譯 from googletrans import translator def trans text translator translator return translator.translate text,dest en text if name main res t...