一、背景

利用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中为msi安装文件,在其他windows服务器安装后就为build下的文件内容,在build下的exe.win-amd64-3.6下的windows.exe 就可打开小工具

Python实现翻译小工具

进行安装测试

Python实现翻译小工具

安装完成后可以运行安装目录下的windows.exe打开小工具

Python实现翻译小工具

©著作权归作者所有:来自51CTO博客作者KaliArch的原创作品,如需转载,请注明出处,否则将追究法律责任

python自动翻译小工具_Python实现翻译小工具相关推荐

  1. python微信语音转发_python实现微信小程序自动回复

    本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能,必须在自己的微信中添加微信号xiaoice-ms(微软的微信机器人)才能实现,直接复制代码运行之后扫一扫二维码即可,经 ...

  2. python代码画小狗_python代码画小狗_皮皮康之Python编程初探2:python函数的使用

    Hello 大家好,我是皮皮康. 相信此刻的你已经通过昨天的资料学会了如何使用python库以及对turtle库有了一定的了解,今天我们就结合turtle库讲述python函数的使用. [函数是什么? ...

  3. python语音翻译软件下载_python软件翻译

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在学习requests请求的时候做过类似的demo,给百度翻译发送一个post请 ...

  4. python autoit打开软件_Python+AutoIt实现界面工具开发

    前言 不同于Linux服务器上的命令行操作,在windows系统上用户的使用习惯还是倾向于使用有界面的工具.如果工具是命令行交互操作的方式,可能是有悖于在windows上使用的操作习惯,往往不容易推广 ...

  5. python有趣的工具_python好玩的小工具(正在create中)

    思路:(可以不用key value来做,本次也没用到) 0)先创建new.xlsx 复制test.xlsx的所有内容,放到new.xlsx里 ,并 以key ,value的形式存base.xlsx数据 ...

  6. python 识别图形验证码_python爬虫20 | 小帅b教你如何用python识别图片验证码

    当你在爬取某些网站的时候 对于你的一些频繁请求 对方会阻碍你 常见的方式就是使用验证码 验证码的主要功能 就是区分你是人还是鬼(机器人) 人 想法设法的搞一些手段来对付技术 而 技术又能对付人们的想法 ...

  7. 使用python创建一个windows桌面在线翻译小程序

    1.首先需要制造打包的gui界面 这里小编使用的是 wxFormBuilder 下载地址:链接:https://pan.baidu.com/s/1DOe7TA6ap07ZsjcH4qzBIQ 密码:2 ...

  8. python自动翻译视频字幕_python利用google翻译字幕文件方法代码示例

    本篇文章小编给大家分享一下python利用google翻译字幕文件方法代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 首先加载模块 pip u ...

  9. python人机猜拳游戏_Python实现剪刀石头布小游戏(与电脑对战)

    具体代码如下所述: srpgame.py #!/urs/bin/env python import random all_choice = ['石头','剪刀','布'] win_list = [[' ...

最新文章

  1. 马斯克“做空”特斯拉
  2. javascript简单应用
  3. linux断电关机后,进度条满后卡在那里
  4. JQuery Attributes 方法说明
  5. php7 出现Class 'DOMDocument' not found的解决方法
  6. tf.train.get_checkpoint_state
  7. oracle 关闭数据库实列,Oracle 11g 数据库启动和关闭
  8. P1423 小玉在游泳(python3实现)
  9. win7计算机用户配置文件存储路径,Win7用户配置文件夹位置怎么修改?
  10. SQL Server中追踪器Trace的介绍和简单使用
  11. crossdomain.xml跨越
  12. MacOS Big Sur 11.4 (20F71) OC 0.7.0 / Cl 5135 / PE 三分区原版黑苹果镜像
  13. Atitit 推广之道 attilax著艾龙著 1. 概念呢 2 1.1. 目的 2 2. 与网络推广相近的概念有网络营销(搜索引擎营销、邮件营销、论坛营销、网站推广、网络广告、SNS营销、微信营销
  14. 文本溢出处理,出现省略号,单行文本溢出处理,多行文本溢出处理
  15. java poi word 复制_java poi实现word导出(包括word模板的使用、复制表格、复制行、插入图片的使用)...
  16. Nodejs之NestJS之pkg打包
  17. 阿里测开岗定级P7全流程加面试真题
  18. 教你几招HASH表查找的方法
  19. 微信小程序加水印(含代码效果图)
  20. android+客户端+教程,Android新浪客户端开发教程完整版.pdf

热门文章

  1. python for i in range 三维_python中的三维卷积
  2. flash h5录音_博乐h5网站建设案例-AI优网络
  3. Unity创建使用操纵杆飞行动画教程
  4. 《DDIA》读书笔记(一):可靠性、可扩展性、可维护性
  5. 多线程:pthread_cond_wait 实现原理
  6. L1-016 查验身份证 (15 分)
  7. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_05 List集合_1_List集合_介绍常用方法...
  8. python之路——模块和包
  9. STM32F103C8开发板原理图和管脚图
  10. Android studio 获取每次编译apk时的日期