修改自yaoyefengchen的Python爬虫之二:自制简易词典
源地址为:https://blog.csdn.net/yaoyefengchen/article/details/78822322
改成了窗口应用
编译成EXE用PYINSTALLER
pyinstaller -F -i lamp.ico Gui_dict2.py --noconsole
# -*- coding: utf-8 -*-
"""
Created on Mon May 28 08:15:42 2018
@author: wutao
"""
from tkinter import *
import tkinter.messagebox as messagebox
import urllib.request
from bs4 import BeautifulSoup
def check(event):
print (event)
if (event.keycode == 13) or (event.num == 1):
# get 函数使用的时候不需要任何参数,它的返回值就是该输入框的内容。
name = e1.get()
# messagebox.showinfo('Translation', name)
myset = [] # 建立列表
url = root_url + urllib.parse.quote(name) # 解决url中带有中文编译失败的问题
response = urllib.request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'lxml')
tag_soup = soup.find(class_='base-list switch_part')
if tag_soup == None: # 防止输入的单词没有释义
messagebox.showinfo('Message', '输入的单词不存在,重新输入.')
else:
meanings = tag_soup.find_all(class_='clearfix')
myset.append(name)
for i in range(len(meanings)):
translatestr = meanings[i].get_text()
myset.append(translatestr.strip().replace('\n',''))
messagebox.showinfo('Translation', '\n'.join(myset))
root_url = 'http://www.iciba.com/'
top=Tk()
top.wm_title("翻译")
#框体大小可调性,分别表示x,y方向的可变性;
#top.resizable(0,0)
#top.geometry("150x80")
s1=Label(top,text="单词:")
s1.grid(row=0,column=0,sticky=W)
e1=Entry(top)
e1.grid(row=1)
b=Button(top,text="查询",relief=SUNKEN)
b.bind('<Button-1>',check)
b.grid(row=2,sticky=E)
e1.bind("<Key>", check)
top.mainloop()