爬虫之翻译工具
近期期末考试来临,对于英语一直很差的我开始了紧张的复习着,在复 习的过程中不免会遇到不同的单词,这个时候就用到了翻译工具的帮助了。也正是在使用翻译网站时,突然想到自己在学习爬虫,为什么不可以写一个属于自己的翻译小工具呢,所以就有了这篇文章。
思路
首先我们需要一个有界面的图形窗口,然后用户通过输入需要翻译的词语,再点击翻译按钮后,会返回一个翻译的结果,
开发工具
requests
模块tkinter
模块pyinstaller
模块
安装
直接 pip
安装即可
分析过程
- 首先访问有道在线翻译:http://fanyi.youdao.com/ ,F12 打开谷歌开发者测试工具,在翻译栏内随意输入需要翻译的词,如:帅哥
- 在开发者工具栏中,点击Network,分析各条数据的 Response,可知图下的这条数据中有我们需要的结果。
- 通过这条数据我们再去分析这个数据的请求,如下图:
从发起请求的请求头中,可知这个请求是post
请求,再往下查看请求的参数,如下图:
通过分析 可知在构造请求时 ,请求头需 User-Agent
即可,而salt
、ts
、vb
、sign
等参数可以不需要。也可知salt
、ts
两参数为时间戳。而sign·
·、vb
两参数可在一个 js 文件中找出,如下图:
分析完成 ,话不多说直接上代码:
from tkinter import *
from tkinter import messagebox
import requests
# 爬去有道翻译 获取翻译结果
def translation():
content = entry1.get() # 获取用户输入的值
if content == "":
messagebox.showinfo('提示', '请输入要翻译的文字')
else:
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0'
}
data = {
'i': content,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTIME',
'typoResult': 'false'
}
resps = requests.post(url, data=data, headers=header)
# print(resps)
translation = resps.json()
# print(translation)
tgt = translation['translateResult'][0][0]['tgt']
res.set(tgt)
root = Tk() # 创建窗口
root.title("中英互译") # 窗口标题
root.geometry('350x80+600+400') # 窗口大小及窗口位置
# 标签控件 fg 字体颜色
one_label = Label(root, text="请输入要翻译的文字:", font=("微软雅黑,8"), fg='black')
one_label.grid()
tow_lable = Label(root, text="翻译之后的结果:", font=("微软雅黑,8"))
tow_lable.grid()
res = StringVar() # 变量
# 输入控件
entry1 = Entry(root, font=("微软雅黑,15"))
entry1.grid(row=0, column=1)
# 翻译后结果
entry2 = Entry(root, font=("微软雅黑,15"), textvariable=res)
entry2.grid(row=1, column=1)
# 按钮控件 sticky 对齐方式 N W E S
button = Button(root, text="翻译", width=10, font=("微软雅黑,10"), command=translation)
button.grid(row=2, column=0, sticky=W)
button1 = Button(root, text="退出", width=10, font=("微软雅黑,10"), command=root.quit)
button1.grid(row=2, column=1, sticky=E)
root.mainloop() # 显示窗口
打包
将文件打包成为一个可执行程序,运行如下命令:
pyinstaller -F -w (-i icofile) filename
filename表示你的Python程序文件名
-w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)
括号内的为可选参数,-i path
表示给程序加上图标,图标必须为.ico
格式
path
表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好
输入完成,按回车,就会开始自动打包了。然后我们进入到用户目录里面会再看到一个名称为dist目录,我们的翻译小工具(exe文件)就在里面
来源:CSDN
作者:BIANBH
链接:https://blog.csdn.net/qq_42783263/article/details/94784582