截图一张


界面没有怎么设计,毕竟也不是卖钱,差不多就行。
下面是代码
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版相关推荐

  1. python爬虫实例——基于python实现有道云翻译接口

    # 分析包 # 分析post请求中参数 # 使用python模拟lts.sign.salt参数运算 # 执行结果 > > 1.按F12对网页进行分析,填写内容后自动翻译的功能一般是通过aj ...

  2. 爬虫有道云翻译中的js加密(2021年8月3日)-python3爬虫

    有道云翻译链接https://fanyi.youdao.com/ 通过抓包发现Post的信息为 其中salt,sign,lts,bv就是反爬虫机制,每次信息不同. 打开开发者工具-network,可以 ...

  3. python有道翻译-Python调用有道词典翻译

    Python调用有道词典翻译 分析 翻译按钮 点击翻译按钮,查看网络请求,如图 共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下: 如图所示,我们真正关注的是请求参 ...

  4. python有道-Python调用有道词典翻译

    Python调用有道词典翻译 分析 翻译按钮 点击翻译按钮,查看网络请求,如图 共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下: 如图所示,我们真正关注的是请求参 ...

  5. 有道云翻译API翻译JavaScript使用教程

    有道云翻译API翻译使用教程 一.注册: 前往有道智云AI开放平台进行注册. 然后填写进入免费体验试用进行资料填写. 二.创建应用: 进入上图1,创建应用如下图:执行1.2. 进入上上图2,创建实例如 ...

  6. Python3 有道云翻译反爬虫

    Python3 有道云翻译反爬虫 反爬虫原理取自下面这篇文章 https://blog.csdn.net/nunchakushuang/article/details/75294947 ------- ...

  7. PHP版本百度翻译有道云翻译讯飞云翻译api相关接口

    <?php$arr = ['注:充值后如未及时到账,请联系客服处理'=>"Nota: se não chegar a tempo após recarregar, por fav ...

  8. 超简单爬虫使用requests模块+有道云翻译,python实现翻译小功能

    前言 最近隔壁小张找到我 "老王,最近我在学英语,不想想再打开网页翻译了,太麻烦了一直要开着网页" "那你可以下载客户端吗,不是挺方便的嘛?" "老王 ...

  9. python利用有道词典翻译_Python利用有道词典接口制作即时翻译的工具

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于Python 实用宝典,作者Python 实用宝典 前言 在编程时经 ...

最新文章

  1. 遍历Collection,避免在循环中删除对象时避免ConcurrentModificationException
  2. 学习java应该如何理解反射?
  3. 【Leetcode】背包问题模板
  4. 程序运行正常,数据库没反应
  5. 查询工资最低的3名员工的职工工号、姓名和收入_工资条6个常识必须掌握,事关你的权益!...
  6. Pandas 读写数据
  7. C++11多线程03
  8. 大学校讯通需求调研报告之精华
  9. 用html制作四行四列的表格,HTML表格
  10. 浅析统一操作系统UOS与深度Deepin区别
  11. 计算机台式电源3c号,电源3C认证流程详情介绍
  12. java源文件在哪_java源文件由什么组成?
  13. 计算机再带word打不开怎么办,word打不开怎么办
  14. shecodject生成免杀木马,一步过360、火绒
  15. wirehark数据分析与取证flag.pcap
  16. 如何使scrapy爬取信息不打印在命令窗口中
  17. 【榜单公布】新星计划第二季落幕,快看你有没有上榜?
  18. Python编程从入门到实践第五章部分习题
  19. MFC、WTL、WPF、wxWidgets、Qt、GTK 对比
  20. Actor模型与Akka

热门文章

  1. 如何在Windows XP上飆速Android intel模擬器加速器(HAXM)
  2. 微信小程序顶部标题栏与胶囊对齐
  3. 关于DNF金刚Go游戏的决策实践
  4. 积分图实现快速均值滤波
  5. oracle报表开发方案
  6. android 动态调试app,Android动态调试
  7. 露眼看App--怎样做一款旅游类的App ?
  8. 我用泡妹子追 MM 的技术学会了 23 种设计模式!
  9. C++任意数字类型转 2进制、8进制、16进制
  10. zcmu-1668: 高桥和低桥