欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

三大Python翻譯神器再也不用擔(dān)心學(xué)不好英語(yǔ)

 更新時(shí)間:2021年09月23日 14:35:36   作者:顧木子吖  
本文介紹了用python做一款屬于自己的翻譯詞典軟件,從此告別網(wǎng)頁(yè)搜索,文中有非常詳細(xì)的代碼示例,小伙伴們快快行動(dòng)吧,需要的朋友可以參考下

導(dǎo)語(yǔ)

圖片

hello everyone!  I'm kimiko!

​Miss me???

嘿!中秋結(jié)束了,開(kāi)始正式營(yíng)業(yè)給大家繼續(xù)送福利啦!

圖片

中秋在家發(fā)現(xiàn):家里的小孩子在最后上學(xué)那天開(kāi)始趕作業(yè)了!果然每個(gè)孩子的童年都是一樣的!哈哈哈啊~

看了一眼侄女兒正在寫英語(yǔ)翻譯題目, 啊這一看不得了題目寫的亂七八糟?。?!

這讓我有點(diǎn)兒上頭啊,剛巧直接給我姐說(shuō)了:‘'‘這英語(yǔ)還要加強(qiáng)學(xué)習(xí)撒'

老姐說(shuō):‘'回家我也不會(huì)教不了,學(xué)校的也沒(méi)學(xué)好,一句完整的句子都講不出來(lái).......‘“

圖片

那肯定是拿上我30米的鼠標(biāo)鍵盤,開(kāi)始敲代碼!這款中英文翻譯神器,小孩子學(xué)習(xí)英文很輕松啊~回家就給我侄女兒裝上電腦了!

å¾ç

正文

你是不是也經(jīng)常遇到這些問(wèn)題:往下看??!今天教大家寫一款三大翻譯神器,你值得擁有!

環(huán)境安裝:python3.6、pycharm2021,以及自帶的模塊。

pip install -i https://pypi.douban.com/simple/ requests 
pip install -i https://pypi.douban.com/simple/ pyqt5

​簡(jiǎn)單的界面可優(yōu)化哈:

class Translator(QWidget):
	def __init__(self, parent=None, **kwargs):
		super(Translator, self).__init__(parent)
		self.setWindowTitle('三大翻譯軟件')
		self.setWindowIcon(QIcon('data/icon.jpg'))
		self.Label1 = QLabel('原文')
		self.Label2 = QLabel('譯文')
		self.LineEdit1 = QLineEdit()
		self.LineEdit2 = QLineEdit()
		self.translateButton1 = QPushButton()
		self.translateButton2 = QPushButton()
		self.translateButton3 = QPushButton()
		self.translateButton1.setText('百度翻譯')
		self.translateButton2.setText('有道翻譯')
		self.translateButton3.setText('谷歌翻譯')
		self.grid = QGridLayout()
		self.grid.setSpacing(12)
		self.grid.addWidget(self.Label1, 1, 0)
		self.grid.addWidget(self.LineEdit1, 1, 1)
		self.grid.addWidget(self.Label2, 2, 0)
		self.grid.addWidget(self.LineEdit2, 2, 1)
		self.grid.addWidget(self.translateButton1, 1, 2)
		self.grid.addWidget(self.translateButton2, 2, 2)
		self.grid.addWidget(self.translateButton3, 3, 2)
		self.setLayout(self.grid)
		self.resize(400, 150)
		self.translateButton1.clicked.connect(lambda : self.translate(api='baidu'))
		self.translateButton2.clicked.connect(lambda : self.translate(api='youdao'))
		self.translateButton3.clicked.connect(lambda : self.translate(api='google'))
		self.bd_translate = baidu()
		self.yd_translate = youdao()
		self.gg_translate = google()
	def translate(self, api='baidu'):
		word = self.LineEdit1.text()
		if not word:
			return
		if api == 'baidu':
			results = self.bd_translate.translate(word)
		elif api == 'youdao':
			results = self.yd_translate.translate(word)
		elif api == 'google':
			results = self.gg_translate.translate(word)
		else:
			raise RuntimeError('Api should be <baidu> or <youdao> or <google>...')
		self.LineEdit2.setText(';'.join(results))

三大翻譯之一:百度翻譯類。

class baidu():
	def __init__(self):
		self.session = requests.Session()
		self.session.cookies.set('BAIDUID', '19288887A223954909730262637D1DEB:FG=1;')
		self.session.cookies.set('PSTM', '%d;' % int(time.time()))
		self.headers = {
							'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
						}
		self.data = {
						'from': '',
						'to': '',
						'query': '',
						'transtype': 'translang',
						'simple_means_flag': '3',
						'sign': '',
						'token': '',
						'domain': 'common'
					}
		self.url = 'https://fanyi.baidu.com/v2transapi'
		self.langdetect_url = 'https://fanyi.baidu.com/langdetect'
	def translate(self, word):
		self.data['from'] = self.detectLanguage(word)
		self.data['to'] = 'en' if self.data['from'] == 'zh' else 'zh'
		self.data['query'] = word
		self.data['token'], gtk = self.getTokenGtk()
		self.data['token'] = '6482f137ca44f07742b2677f5ffd39e1'
		self.data['sign'] = self.getSign(gtk, word)
		res = self.session.post(self.url, data=self.data)
		return [res.json()['trans_result']['data'][0]['result'][0][1]]
	def getTokenGtk(self):
		url = 'https://fanyi.baidu.com/'
		res = requests.get(url, headers=self.headers)
		token = re.findall(r"token: '(.*?)'", res.text)[0]
		gtk = re.findall(r";window.gtk = ('.*?');", res.text)[0]
		return token, gtk
	def getSign(self, gtk, word):
		evaljs = js2py.EvalJs()
		js_code = js.bd_js_code
		js_code = js_code.replace('null !== i ? i : (i = window[l] || "") || ""', gtk)
		evaljs.execute(js_code)
		sign = evaljs.e(word)
		return sign
	def detectLanguage(self, word):
		data = {
				'query': word
				}
		res = self.session.post(self.langdetect_url, headers=self.headers, data=data)
		return res.json()['lan']

​三大翻譯之二:有道翻譯類。

class youdao():
	def __init__(self):
		self.headers = {
						'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
						'Referer': 'http://fanyi.youdao.com/',
						'Cookie': 'OUTFOX_SEARCH_USER_ID=-481680322@10.169.0.83;'
					}
		self.data = {
						'i': None,
						'from': 'AUTO',
						'to': 'AUTO',
						'smartresult': 'dict',
						'client': 'fanyideskweb',
						'salt': None,
						'sign': None,
						'ts': None,
						'bv': None,
						'doctype': 'json',
						'version': '2.1',
						'keyfrom': 'fanyi.web',
						'action': 'FY_BY_REALTlME'
					}
		self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
	def translate(self, word):
		ts = str(int(time.time()*10000))
		salt = ts + str(int(random.random()*10))
		sign = 'fanyideskweb' + word + salt + '97_3(jkMYg@T[KZQmqjTK'
		sign = hashlib.md5(sign.encode('utf-8')).hexdigest()
		bv = '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
		bv = hashlib.md5(bv.encode('utf-8')).hexdigest()
		self.data['i'] = word
		self.data['salt'] = salt
		self.data['sign'] = sign
		self.data['ts'] = ts
		self.data['bv'] = bv
		res = requests.post(self.url, headers=self.headers, data=self.data)
		return [res.json()['translateResult'][0][0].get('tgt')]

​三大翻譯之三:Google翻譯類。

class google():
	def __init__(self):
		self.headers = {
						'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
					}
		self.url = 'https://translate.google.cn/translate_a/single?client=t&sl=auto&tl={}&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&tk={}&q={}'
	def translate(self, word):
		if len(word) > 4891:
			raise RuntimeError('The length of word should be less than 4891...')
		languages = ['zh-CN', 'en']
		if not self.isChinese(word):
			target_language = languages[0]
		else:
			target_language = languages[1]
		res = requests.get(self.url.format(target_language, self.getTk(word), word), headers=self.headers)
		return [res.json()[0][0][0]]
	def getTk(self, word):
		evaljs = js2py.EvalJs()
		js_code = js.gg_js_code
		evaljs.execute(js_code)
		tk = evaljs.TL(word)
		return tk
	def isChinese(self, word):
		for w in word:
			if '\u4e00' <= w <= '\u9fa5':
				return True
		return False

效果如下:中英文各一句哈!

​總結(jié)

每天進(jìn)步一點(diǎn)點(diǎn)!記得“三連哦~愛(ài)你,堅(jiān)持學(xué)習(xí)?。?!

到此這篇關(guān)于三大Python翻譯神器再也不用擔(dān)心學(xué)不好英語(yǔ)的文章就介紹到這了,更多相關(guān)Python 翻譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python繪制3D立體花朵示例詳解

    Python繪制3D立體花朵示例詳解

    情人節(jié)送玫瑰花千篇一律?本文將為大家介紹利用Python繪制多種3D立體花朵的示例代碼,讓女友感受一下程序員的浪漫!快來(lái)跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • 對(duì)python制作自己的數(shù)據(jù)集實(shí)例講解

    對(duì)python制作自己的數(shù)據(jù)集實(shí)例講解

    今天小編就為大家分享一篇對(duì)python制作自己的數(shù)據(jù)集實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python3.6使用pickle序列化class的方法

    python3.6使用pickle序列化class的方法

    今天小編就為大家分享一篇python3.6使用pickle序列化class的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 利用python計(jì)算均值、方差和標(biāo)準(zhǔn)差(Numpy和Pandas)

    利用python計(jì)算均值、方差和標(biāo)準(zhǔn)差(Numpy和Pandas)

    這篇文章主要給大家介紹了關(guān)于利用python計(jì)算均值、方差和標(biāo)準(zhǔn)差的相關(guān)資料,Numpy在Python中是一個(gè)通用的數(shù)組處理包,它提供了一個(gè)高性能的多維數(shù)組對(duì)象和用于處理這些數(shù)組的工具,它是使用Python進(jìn)行科學(xué)計(jì)算的基礎(chǔ)包,需要的朋友可以參考下
    2023-11-11
  • 通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類

    通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類

    這篇文章主要介紹了通過(guò)python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類,比如兩個(gè)不同的工程項(xiàng)目針對(duì)的對(duì)象都是A,那么就需要將這兩個(gè)工程項(xiàng)目歸類到A當(dāng)中,可以減少很大一部分工作量,,需要的朋友可以參考下
    2023-03-03
  • Python代碼塊批量添加Tab縮進(jìn)的方法

    Python代碼塊批量添加Tab縮進(jìn)的方法

    今天小編就為大家分享一篇Python代碼塊批量添加Tab縮進(jìn)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 在Python中使用defaultdict初始化字典以及應(yīng)用方法

    在Python中使用defaultdict初始化字典以及應(yīng)用方法

    今天小編就為大家分享一篇在Python中使用defaultdict初始化字典以及應(yīng)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用

    python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用

    這篇文章主要為大家介紹了python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 簡(jiǎn)單介紹Python虛擬環(huán)境及使用方法

    簡(jiǎn)單介紹Python虛擬環(huán)境及使用方法

    Python的虛擬環(huán)境極大地方便了人們的生活.本文介紹了虛擬環(huán)境的基礎(chǔ)知識(shí)以及使用方法,文中有非常詳細(xì)的說(shuō)明,需要的朋友可以參考下
    2021-06-06
  • Pytorch可視化的幾種實(shí)現(xiàn)方法

    Pytorch可視化的幾種實(shí)現(xiàn)方法

    本文主要介紹了Pytorch可視化,主要介紹了3中使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評(píng)論