python自制英汉词典
作为一位python小白,无意间发现在jclian91发布的博客中做了个爬取有道词典的翻译爬虫,本着学习的态度,借鉴大佬的代码,自己也撸了串代码,完成了自己的第一个爬虫代码,添加了gui界面,添加了从汉翻英的功能。
代码中用到的第三方库自行通过pip install
安装
代码如下:
#! python3
# -*- coding: UTF-8 -*-
# Author:fan liu
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
import re
import wx
class MyFrame(wx.Frame):def __init__(self,parent,id):wx.Frame.__init__(self,parent,id,title='translate',size=(410,335))bkg=wx.Panel(self)self.Btn1=wx.Button(bkg,label='中文翻译')self.Btn1.Bind(wx.EVT_BUTTON,self.ch_trans)self.Btn3=wx.Button(bkg,label='英文翻译')self.Btn3.Bind(wx.EVT_BUTTON,self.eng_trans)self.Btn2=wx.Button(bkg,label='清除')self.Btn2.Bind(wx.EVT_BUTTON,self.clear)self.word=wx.TextCtrl(bkg)self.contents=wx.TextCtrl(bkg,style=wx.TE_MULTILINE|wx.HSCROLL)self.hbox=wx.BoxSizer()self.hbox.Add(self.word,proportion=1,flag=wx.EXPAND)self.hbox.Add(self.Btn1,proportion=0,flag=wx.LEFT,border=5)self.hbox.Add(self.Btn3,proportion=0,flag=wx.LEFT,border=5)self.hbox.Add(self.Btn2,proportion=0,flag=wx.LEFT,border=5)self.vbox=wx.BoxSizer(wx.VERTICAL)self.vbox.Add(self.hbox,proportion=0,flag=wx.EXPAND | wx.ALL,border=5)self.vbox.Add(self.contents,proportion=1,flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM,border=5)bkg.SetSizer(self.vbox)def ch_trans(self,event):word=self.word.GetValue()ua=UserAgent()headers={'User-Agent':ua.random}try:string=''string1=''r=requests.get(url='http://dict.youdao.com/w/%s/#keyfrom=dict2.top'%word,headers=headers)soup=BeautifulSoup(r.text,'lxml')s=soup.find(class_="trans-container")('ul')[0]('p')for item in s:if item.text:string=str(item.text)li=re.split('[\n]+',string)for i in li:string1+=istring1+='\n'self.contents.SetValue(string1)except Exception:self.contents.SetValue('something goes wrong!')def eng_trans(self,event):word=self.word.GetValue()ua=UserAgent()headers={'User-Agent':ua.random}try:r=requests.get(url='http://dict.youdao.com/w/%s/#keyfrom=dict2.top'%word,headers=headers)soup=BeautifulSoup(r.text,'lxml')s=soup.find(class_="trans-container")('ul')[0]('li')string=''for item in s:if item.text:string+=str(item.text)+'\n'self.contents.SetValue(string)except Exception:self.contents.SetValue('something goes wrong!')def clear(self,event):self.word.SetValue('')self.contents.SetValue('')
if __name__=='__main__':app=wx.App()frame=MyFrame(None,-1)frame.Show()app.MainLoop()
python自制英汉词典相关推荐
- Python对英汉词典的若干操作(#10)
从网上下载了一个英汉词典txt版,整理后放在了py文件同一目录下,取名为"英汉词典".后面要用正则表达式处理这些单词. 1.读取英汉词典前10行 f=open("英汉词典 ...
- python制作英汉词典_Python基于有道实现英汉字典功能
本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...
- python电子英汉词典显示_python网页抓取之英汉字典
linux的字典本人实在用起来不舒服(stardict挺不错的,但是界面好看些,功能简单易用就好了) ,在线翻译又得打开庞大的浏览器....就打算自己写个,但是时间有限,为了简单, 还是用python ...
- python电子英汉词典显示_如何使用python为Linux打造一款命令行下的在线英汉词典...
项目说明 : 在linux终端下有时候遇到一个想查询的英语单词 , 但是不想打开浏览器去谷歌或者百度去搜索 , 因此就写了这个基于爬虫的单词翻译工具 , 实现原理很简单 , 基本开发已经完成 ,总共有 ...
- python制作英汉词典_python如何制作英文字典
本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下 功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件. keys=[] dic={} def rdic(): ...
- python电子英汉词典显示_Python实现汉英字典
概述 实现一个翻译功能,中英文的互相转换.并可以播放翻译后的内容. 翻译接口调用的是百度翻译的api接口. 详细 一.需求分析 使用pygame实现一个翻译功能,并可以播放翻译内容.(模仿百度翻译做一 ...
- Python控制台英汉-汉英电子词典
2019独角兽企业重金招聘Python工程师标准>>> Python控制台英汉-汉英电子词典 By qianghaohao(CodeNutter) 用python实现了下控制台电子词 ...
- Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典
Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...
- 通过游戏编程学Python(6)— 英汉词典、背单词
通过游戏编程学Python 通过游戏编程学Python(番外篇)- 乱序成语.猜单词 通过游戏编程学Python(5)- 猜成语(下) 通过游戏编程学Python(4)- 猜成语(上) 文章目录 通过 ...
最新文章
- Java --Lamda表达式
- SVN的标准目录结构:trunk、branches、tags
- Windows保护模式学习笔记(七)—— PDEPTE
- 【shell】shuf命令,随机排序
- Learn python the seventh day
- c 数据压缩算法_CCSDS图像压缩算法之我见(一)
- magento网站建设_外贸网站建设指南,告诉你建站系统怎么选择
- 7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!
- C# SFTP上传文件
- C#LeetCode刷题-并查集
- good archtchre article
- 读“让你的软件飞起来”持续更新代码运行效率之路
- 牛客NOIP暑期七天营-普及组1 解题报告
- python怎么检查页面边距_Matplotlib页边距
- LeetCode-----第113题-----路径总和 II
- inspect的使用
- LeetCode 517 超级洗衣机 解法
- C语言实现大整数乘法
- 中国人工智能大赛个人赛正式收官,优质企业、专业参赛团队继续“接棒”
- Discuz!论坛部署