在目标的任务如图1所示(虽然界面有点丑),首先有文本输入框可以输入需要翻译的英语词汇,然后获取到界面输入文本框中的内容,接着使用python的爬虫技术,获取翻译好的内容,展示的界面上。
图11.GUI模块
该模块主要是界面的编写,主要部分为3部分,第一部分为为本输入部分,翻译按键响应部分和最后的结果展示部分,代码如下所示:
from tkinter import *
root = Tk()
label = Label(root,text='汉英互译',justify=LEFT,compound=CENTER,font=("楷体",20),fg='black').grid(row=0,column=0)
Label(root,text="请输入词语:").grid(row=1,column=0)
content = StringVar()
e1 = Entry(root,textvariable=content)
e1.grid(row=1,column=1,padx=10,pady=10)
result = StringVar()
result.set("");
resultlabel = Label(root,textvariable=result,justify=LEFT,compound=CENTER,font=("楷体",20),fg='black').grid(row=4,column=0)
Button(root,text="翻译",width=10,command=loginAction).grid(row=3,column=0,sticky=W,padx=10,pady=10)
mainloop()
2.爬虫模块
首先找到自己的目标地址例如某某翻译,接着使用F12找到NetWork里面的XHR对象。接着找到对应的Request URL这个属性的URL地址赋值到下面代码的URL中。接着找到From Data中的内容逐个的赋值到下面的Data集合中。必要的时候还需要填写User-Agent例如
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ~~~~~~~~
在将User-Agent放置到urllib.request.Request(url,data,head)
就可以了。
import urllib.request
import urllib.parse
import json
def search(str):
url = 'http://~~~~~~~~~~~~~~~~~~~'
data = {}
data['f'] = 'auto'
data['t'] = 'auto'
data['w'] = str
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
html = response.read().decode('utf-8')
jsonData = json.loads(html)
word = jsonData['content']['word_mean'][0].split('.');
responseStr = word[1].strip(';')
return responseStr
3.将爬到的数据放置界面
该模块主要讲爬到的数据放置界面的制定位置。
def loginAction():
resultStr = search(e1.get())
result.set(resultStr)
print(result)
网友评论