Python实现翻译小工具「建议收藏」

Python实现翻译小工具「建议收藏」一、背景利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面。二、代码git源码地址fanyi.py代

大家好,又见面了,我是你们的朋友全栈君。

一、背景

利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面。

二、代码

git源码地址 Python实现翻译小工具

fanyi.py代码如下:

#!/bin/env python # -*- coding:utf-8 -*- # _author:kaliarch import requests import urllib.parse import time import random import hashlib import json class search(object): def __init__(self): self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' def getData(self,search_name): # salt =i = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10) salt = ((time.time() * 1000) + random.randint(1,10)) # sign = n.md5("fanyideskweb" + t + i + "ebSeFb%=XZ%T[KZ)c(sy!") sign_text = "fanyideskweb" + search_name + str(salt) + "ebSeFb%=XZ%T[KZ)c(sy!" sign = hashlib.md5((sign_text.encode('utf-8'))).hexdigest() paydata = { 'i': search_name, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': salt, 'sign': sign, 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_CLICKBUTTION', 'typoResult': 'false' } return paydata def getHeader(self): header = { 'Host': 'fanyi.youdao.com', 'Referer': 'http://fanyi.youdao.com/', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36', 'Cookie': 'OUTFOX_SEARCH_USER_ID=-846616837@1.80.219.201; OUTFOX_SEARCH_USER_ID_NCOO=129549097.60835753; UM_distinctid=15ff309f18ddc-094cb5494ad815-5d4e211f-1fa400-15ff309f18e449; _ga=GA1.2.184261795.1517119351; __guid=204659719.2556877880764680700.1518435624954.942; JSESSIONID=aaa3A5BLhtTrh4TPX_mgw; monitor_count=2; ___rl__test__cookies=1518488731567' } return header def getRequest(self,paydata,header): _data = urllib.parse.urlencode(paydata).encode('utf-8') _header = header response = requests.post(self.url,data=_data,headers=_header) return response.text def getResult(self,response): result_text = json.loads(response) #src = result_text['translateResult'][0][0]['src'] tgt = result_text['translateResult'][0][0]['tgt'] return tgt def main(self,search_name): app = search() paydata = app.getData(search_name) header = app.getHeader() response = app.getRequest(paydata, header) tgt = app.getResult(response) return tgt 

windows.py代码如下:

#!/bin/env python # -*- coding:utf-8 -*- # _author:kaliarch import tkinter as tk from fanyi import search class application: def __init__(self): self.windows = tk.Tk() self.windows.title("翻译小工具") self.windows.geometry("280x350+700+300") #提交按钮 self.submit_btn = tk.Button(self.windows, text="查询",command=self.submit) self.submit_btn.place(x=220, y=10, width=50, height=25) # 定义输入框 self.entry = tk.Entry(self.windows) self.entry.place(x=10, y=10, width=200, height=40) #输出内容 self.result_text = tk.Text(self.windows, background="#ccc") self.result_text.place(x=10, y=90, width=260, height=245) # 翻译结果标题 self.title_label = tk.Label(self.windows, text="翻译结果:") self.title_label.place(x=10, y=65) self.search_result = search() def submit(self): #1.获取用户输入 context = self.entry.get() #2.利用有道翻译 result = self.search_result.main(context) #3.输出 self.result_text.delete(1.0,tk.END) self.result_text.insert(tk.END,result) def run(self): self.windows.mainloop() if __name__ == '__main__': winapp = application() winapp.run()

setup.py代码如下:

# -*- coding:utf-8 -*- # _author:kaliarch import sys from cx_Freeze import setup,Executable import os os.environ['TCL_LIBRARY'] = r"C:\Program Files\Python36\tcl\tcl8.6" os.environ['TK_LIBRARY'] = r"C:\Program Files\Python36\tcl\tk8.6" include_files = [ r"C:\Program Files\Python36\DLLs\tcl86t.dll", r"C:\Program Files\Python36\DLLs\tk86t.dll", ] build_exe_options = { "packages":["os","tkinter","requests","idna"], "include_files":include_files } base = None if sys.platform == "win32": base = "Win32GUI" setup(name = "translate_tool", version = "0.1", description = "fanyitools!", options = {"build_exe":build_exe_options}, executables = {Executable("windows.py",base=base,icon='img.ico')} )

三、效果展示

 

运行windows.py,输入想要翻译的内容,点击翻译即可查看翻译结果

Python实现翻译小工具 Python实现翻译小工具

 

 

可以利用cx_Freeze打包成windows的mis安装小程序,方便使用

Python实现翻译小工具

切换到项目目录下执行python setup.py bdist_msi 待执行完毕,可以项目文件下生成两个文件夹dist中为

更多Java视频资料 731661047

 

msi安装文件,在其他windows服务器安装后就为build下的文件内容,在build下的exe.win-amd64-3.6下的windows.exe 就可打开小工具进行安装

Python实现翻译小工具

 

测试 Python实现翻译小工具 安装完成后可以运行安装目录下的windows.exe打开小工具 Python实现翻译小工具

原文链接:http://blog.51cto.com/kaliarch/2072150

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156111.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月5日 下午11:16
下一篇 2022年7月5日 下午11:36


相关推荐

  • UltraISO软碟通安装与刻盘以及安装镜像[通俗易懂]

    UltraISO软碟通安装与刻盘以及安装镜像[通俗易懂]教程整合三个出处1.准备一个8G以上的U盘,USB2.0以上就可以。然后安装UltraISO,右击程序,以管理员身份运行:2.软件下载地址http://ct.ghpym.com/dir/7369060-41274910-101449本次提供的版本无需注册码,如果提示输入,可以使用下面的注册码输入任意激活码即可用户名:果核剥壳注册码:2042ED05F7B36E0D用户名:ghpym激活码:447D3A36B62292E33.点击文件-打开,找到下载的恢复镜像…

    2022年7月26日
    13
  • model.addattribute()的作用___attribute__()

    model.addattribute()的作用___attribute__()在前台用JS写的脚本方法,除了可以直接用在前台控件的属性中,还可以在后台运用。即在后台页面加载时,调用JS方法。语法格式有两种,如下:1.第一种写法:控件ID名.Attributes.Add(“事件名称”,“JS方法”);如:一个按钮控件Button1.Attributes.Add(“onclick”,“returnconfirm(‘确认?’)”);2.另一写法…

    2026年4月14日
    9
  • live2d模型_判别模型

    live2d模型_判别模型★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:MindDraft➤博主域名:https://www.zengqiang.org➤GitHub地址:ht

    2022年8月3日
    7
  • Python关键字及其含义

    Python关键字及其含义关键字含义 False 布尔类型的值 表示假 与 True 相对 None 表示什么也没有 自己的数据类型 NoneTypeTrue 布尔类型的值 表示真 与 False 相反 and 用于表达式运算 逻辑与操作 as 用于类型转换 assert 断言 用于判断变量或者条件表达式的值是否为真 break 中断循环语句的执行 class 用于定义类 cont

    2026年3月18日
    1
  • dnsmasq mysql_DNSmasq介绍

    dnsmasq mysql_DNSmasq介绍DNSmasq 介绍注意 前提是网卡设置为自动获取 ip 和自动获取 dns DNSmasq 才有用 然后从 etc resolv conf 获取 dns 地址 否则手动配置网卡 etc resolv conf 这些是用不上的 resolve file 定义 dnsmasq 从哪里获取上游 DNS 服务器的地址 默认是从 etc resolv conf 获取 cat etc sysconfig network s

    2026年3月18日
    3
  • tomcat 是什么

    tomcat 是什么从网上搜集的各种资料 无法登陆 google 有点可惜 1 Tomcat 是 Apache 软件基金会 ApacheSoftwa 的 Jakarta 项目中的一个核心项目 由 Apache Sun 和部分公司和个人一起开发完善的轻量级 Web 应用服务器 是 Servlet 规范和 JSP 规范的开源实现 由于因为 Tomcat 技术先进 性能稳定 而且免费 因而深受 Java

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号