Python实现有道云翻译-PyQt5版
截图一张
界面没有怎么设计,毕竟也不是卖钱,差不多就行。
下面是代码
YoudaoTranslate.py
import hashlib
import random
import time
import tkinterimport requestsdef exp(translate_text):url = 'https://aidemo.youdao.com/trans'if not translate_text:returnif len(translate_text) > 1000:print('体验翻译上限1000字符')returndata = {'q': translate_text,'from': 'Auto','to': 'Auto'}headers = {"Accept ": "application/json, text/javascript, */*; q=0.01","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","Origin": r"https://ai.youdao.com","Referer": "https://ai.youdao.com/product-fanyi.s","Sec-Fetch-Mode": "cors","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"}result = requests.post(url, data=data, headers=headers).json()for item in result['translation']:print(item)def web(translate_text):app_version = '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'r = str(int(time.time() * 1000))i = r + str(random.randint(0, 10))t = hashlib.md5(app_version.encode(encoding='utf-8')).hexdigest()sign_str = ("fanyideskweb" + str(translate_text) + str(i) + "n%A-rKaT5fb[Gy?;N5@Tj").encode(encoding='utf-8')sign = hashlib.md5(sign_str).hexdigest()data = {'i': translate_text,'from': 'AUTO','to': 'AUTO','smartresult': 'dict','client': 'fanyideskweb','salt': i,'sign': sign,'ts': r,'bv': t,'doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_REALTlME'}headers = {'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Host': 'fanyi.youdao.com',"Cookie": "OUTFOX_SEARCH_USER_ID=864762568@182.48.107.243; ___rl__test__cookies=%s; OUTFOX_SEARCH_USER_ID_NCOO=%s" % (r, 2147483647 * random.random()),'Origin': 'http://fanyi.youdao.com','Referer': 'http://fanyi.youdao.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36','X-Requested-With': 'XMLHttpRequest'}url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'result = requests.post(url, headers=headers, data=data).json()if result['errorCode'] == 0:return resultelse:return Nonedef fanyi():global textresult = web(text.get(0.0, tkinter.END))if result:text.delete(0.0, tkinter.END)i = 0for item in result['translateResult']:if i > 0:text.insert(tkinter.INSERT, '\n')text.insert(tkinter.INSERT, item[0]['tgt'])i += 1def configwindow():global text# 创建主窗口window = tkinter.Tk()# 设置标题window.title('Titanjun')# 设置窗口大小window.geometry('600x400')button2 = tkinter.Button(window, text='翻译', width=15, height=2, fg='#fff', bg='#e02433', borderwidth=0,activebackground='#bf0917', activeforeground='#fff', font=('Microsoft YaHei', 12),cursor='hand2')button2.bind("<Button-1>", fanyi)button2.pack()text = tkinter.Text(window, fg="#333", background='#f2f2f2', font=('Microsoft YaHei', 18))# 添加右侧滚动条scroll = tkinter.Scrollbar()# side放到窗体的那一侧 fill填充scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)text.pack(side=tkinter.RIGHT, fill=tkinter.Y)# 两者关联scroll.config(command=text.yview)text.config(yscrollcommand=scroll.set)text.pack(fill='both')# 进入消息循环window.mainloop()# query = input('请输入要翻译的文本:')# print(web(query))# if __name__ == '__main__':
# configwindow()
有道翻译GUI.py
# -*- coding: utf-8 -*-import os
import sys
from YouDaoTranslate import webif hasattr(sys, 'frozen'):os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']from PyQt5 import QtCore, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(783, 595)# 禁止最大化按钮MainWindow.setWindowFlags(QtCore.Qt.WindowFullscreenButtonHint)# 禁止拉伸窗口大小MainWindow.setFixedSize(MainWindow.width(), MainWindow.height())MainWindow.setStyleSheet("button:hover{\n"" background-color:#bf0917\n""}")self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(300, 10, 111, 41))self.pushButton.setStyleSheet("QPushButton{\n"" margin-left: 16px;\n"" text-align: center;\n"" width: 108px;\n"" height: 38px;\n"" line-height: 38px;\n"" background: #e02433;\n"" border-radius: 3px;\n"" font-size: 14px;\n"" color: #fff;\n""}\n""QPushButton:hover{"" cursor:pointer;\n"" background-color:#bf0917\n""}")self.pushButton.setObjectName("pushButton")self.textEdit = QtWidgets.QTextEdit(self.centralwidget)self.textEdit.setGeometry(QtCore.QRect(0, 60, 791, 531))self.textEdit.setStyleSheet("QTextEdit{\n"" color:#333;\n"" font-size: 24px;\n"" line-height: 30px;\n"" height: 420px;\n"" background: #fff;\n"" border-radius: 6px;\n"" margin-right: 10px;\n"" padding: 18px 50px 18px 18px;\n""}\n""QTextEdit:hover{\n"" border: 1px solid #0e7dff\n""}")self.textEdit.setObjectName("textEdit")self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")self.retranslateUi(MainWindow)self.pushButton.clicked.connect(self.web2)QtCore.QMetaObject.connectSlotsByName(MainWindow)def web2(self):result = web(self.textEdit.toPlainText())if result:self.textEdit.clear()content = []for item in result['translateResult']:content.append(item[0]['tgt'])self.textEdit.setPlainText("\n".join(content))def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.pushButton.setText(_translate("MainWindow", "翻译"))if __name__ == "__main__":app = QtWidgets.QApplication(sys.argv)widget = QtWidgets.QWidget()ui = Ui_MainWindow()ui.setupUi(widget)widget.show()sys.exit(app.exec_())
使用PyInstaller打包成exe
pyinstaller -F -W -n 有道翻译 -i C:\Users\mbh\Downloads\20190904022008140_easyicon_net_256.ico F_copy2.py -p YouDaoTranslate.py -p "D:\Program Files(x86)\Python\Python37-32\Lib\site-packages"
Python实现有道云翻译-PyQt5版相关推荐
- python爬虫实例——基于python实现有道云翻译接口
# 分析包 # 分析post请求中参数 # 使用python模拟lts.sign.salt参数运算 # 执行结果 > > 1.按F12对网页进行分析,填写内容后自动翻译的功能一般是通过aj ...
- 爬虫有道云翻译中的js加密(2021年8月3日)-python3爬虫
有道云翻译链接https://fanyi.youdao.com/ 通过抓包发现Post的信息为 其中salt,sign,lts,bv就是反爬虫机制,每次信息不同. 打开开发者工具-network,可以 ...
- python有道翻译-Python调用有道词典翻译
Python调用有道词典翻译 分析 翻译按钮 点击翻译按钮,查看网络请求,如图 共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下: 如图所示,我们真正关注的是请求参 ...
- python有道-Python调用有道词典翻译
Python调用有道词典翻译 分析 翻译按钮 点击翻译按钮,查看网络请求,如图 共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下: 如图所示,我们真正关注的是请求参 ...
- 有道云翻译API翻译JavaScript使用教程
有道云翻译API翻译使用教程 一.注册: 前往有道智云AI开放平台进行注册. 然后填写进入免费体验试用进行资料填写. 二.创建应用: 进入上图1,创建应用如下图:执行1.2. 进入上上图2,创建实例如 ...
- Python3 有道云翻译反爬虫
Python3 有道云翻译反爬虫 反爬虫原理取自下面这篇文章 https://blog.csdn.net/nunchakushuang/article/details/75294947 ------- ...
- PHP版本百度翻译有道云翻译讯飞云翻译api相关接口
<?php$arr = ['注:充值后如未及时到账,请联系客服处理'=>"Nota: se não chegar a tempo após recarregar, por fav ...
- 超简单爬虫使用requests模块+有道云翻译,python实现翻译小功能
前言 最近隔壁小张找到我 "老王,最近我在学英语,不想想再打开网页翻译了,太麻烦了一直要开着网页" "那你可以下载客户端吗,不是挺方便的嘛?" "老王 ...
- python利用有道词典翻译_Python利用有道词典接口制作即时翻译的工具
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于Python 实用宝典,作者Python 实用宝典 前言 在编程时经 ...
最新文章
- 遍历Collection,避免在循环中删除对象时避免ConcurrentModificationException
- 学习java应该如何理解反射?
- 【Leetcode】背包问题模板
- 程序运行正常,数据库没反应
- 查询工资最低的3名员工的职工工号、姓名和收入_工资条6个常识必须掌握,事关你的权益!...
- Pandas 读写数据
- C++11多线程03
- 大学校讯通需求调研报告之精华
- 用html制作四行四列的表格,HTML表格
- 浅析统一操作系统UOS与深度Deepin区别
- 计算机台式电源3c号,电源3C认证流程详情介绍
- java源文件在哪_java源文件由什么组成?
- 计算机再带word打不开怎么办,word打不开怎么办
- shecodject生成免杀木马,一步过360、火绒
- wirehark数据分析与取证flag.pcap
- 如何使scrapy爬取信息不打印在命令窗口中
- 【榜单公布】新星计划第二季落幕,快看你有没有上榜?
- Python编程从入门到实践第五章部分习题
- MFC、WTL、WPF、wxWidgets、Qt、GTK 对比
- Actor模型与Akka