自制简易词典------python学习之

修改自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()

猜你喜欢

转载自blog.csdn.net/wawt_wawt/article/details/80596451