作为一位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自制英汉词典相关推荐

  1. Python对英汉词典的若干操作(#10)

    从网上下载了一个英汉词典txt版,整理后放在了py文件同一目录下,取名为"英汉词典".后面要用正则表达式处理这些单词. 1.读取英汉词典前10行 f=open("英汉词典 ...

  2. python制作英汉词典_Python基于有道实现英汉字典功能

    本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...

  3. python电子英汉词典显示_python网页抓取之英汉字典

    linux的字典本人实在用起来不舒服(stardict挺不错的,但是界面好看些,功能简单易用就好了) ,在线翻译又得打开庞大的浏览器....就打算自己写个,但是时间有限,为了简单, 还是用python ...

  4. python电子英汉词典显示_如何使用python为Linux打造一款命令行下的在线英汉词典...

    项目说明 : 在linux终端下有时候遇到一个想查询的英语单词 , 但是不想打开浏览器去谷歌或者百度去搜索 , 因此就写了这个基于爬虫的单词翻译工具 , 实现原理很简单 , 基本开发已经完成 ,总共有 ...

  5. python制作英汉词典_python如何制作英文字典

    本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下 功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件. keys=[] dic={} def rdic(): ...

  6. python电子英汉词典显示_Python实现汉英字典

    概述 实现一个翻译功能,中英文的互相转换.并可以播放翻译后的内容. 翻译接口调用的是百度翻译的api接口. 详细 一.需求分析 使用pygame实现一个翻译功能,并可以播放翻译内容.(模仿百度翻译做一 ...

  7. Python控制台英汉-汉英电子词典

    2019独角兽企业重金招聘Python工程师标准>>> Python控制台英汉-汉英电子词典 By qianghaohao(CodeNutter) 用python实现了下控制台电子词 ...

  8. Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典

    Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...

  9. 通过游戏编程学Python(6)— 英汉词典、背单词

    通过游戏编程学Python 通过游戏编程学Python(番外篇)- 乱序成语.猜单词 通过游戏编程学Python(5)- 猜成语(下) 通过游戏编程学Python(4)- 猜成语(上) 文章目录 通过 ...

最新文章

  1. Java --Lamda表达式
  2. SVN的标准目录结构:trunk、branches、tags
  3. Windows保护模式学习笔记(七)—— PDEPTE
  4. 【shell】shuf命令,随机排序
  5. Learn python the seventh day
  6. c 数据压缩算法_CCSDS图像压缩算法之我见(一)
  7. magento网站建设_外贸网站建设指南,告诉你建站系统怎么选择
  8. 7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!
  9. C# SFTP上传文件
  10. C#LeetCode刷题-并查集
  11. good archtchre article
  12. 读“让你的软件飞起来”持续更新代码运行效率之路
  13. 牛客NOIP暑期七天营-普及组1 解题报告
  14. python怎么检查页面边距_Matplotlib页边距
  15. LeetCode-----第113题-----路径总和 II
  16. inspect的使用
  17. LeetCode 517 超级洗衣机 解法
  18. C语言实现大整数乘法
  19. 中国人工智能大赛个人赛正式收官,优质企业、专业参赛团队继续“接棒”
  20. Discuz!论坛部署

热门文章

  1. 安卓7.0之后ssl如何抓包是一个NP难题么?
  2. 基于echarts 数据可视化大屏展示全国热点分布高亮地图特效
  3. [笔记分享] [中断] 中断申请释放以及上下半部
  4. 牛客j寒假算法训练营一(待补充)
  5. 商用计算机选购的要点什么,2018选购笔记本的技巧 笔记本电脑选购要点
  6. 生活随笔:生活感想记录
  7. Docker从安装到部署JAVA应用
  8. 异步社区进入3.X时代!这些新玩法你一定要知道
  9. centos7安装nvida显卡驱动
  10. uiautomator2详细使用方法