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

linux的字典本人实在用起来不舒服(stardict挺不错的,但是界面好看些,功能简单易用就好了)

,在线翻译又得打开庞大的浏览器....就打算自己写个,但是时间有限,为了简单,

还是用python抓取网页来的快些。本人用的必应字典。

获取某个单词解释url是:

http://cn.bing.com/dict/search?q=word&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH

其中的红色word即是要翻译“word”单词。

代码如下dic.py:python使用的是2.7.5版本

1 #!/usr/bin/python

2 importurllib2,sys3 from HTMLParser importHTMLParser4 from htmlentitydefs importname2codepoint5

6 classMyHTMLParser(HTMLParser): #解析html7 def __init__(self):8 HTMLParser.__init__(self)9 self.t=False10 self.trans=[]11 self.pr=False12 defhandle_starttag(self, tag, attrs):13 if tag=='div':14 for attr inattrs:15 if attr==('class','hd_prUS') or\16 attr==('class','hd_pr'):17 self.pr=True18 if tag=='span':19 for attr inattrs:20 if attr==('class','def'):21 self.t=True22 defhandle_data(self, data):23 ifself.t:24 self.trans.append(data)25 self.t=False26 ifself.pr:27 printdata28 self.pr=False29 defgetTrans(self):30 returnself.trans31 classtrans:32 _URL='http://cn.bing.com/dict/search'

33 def __init__(self):34 self.url=trans._URL+"?q=%s&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH"

35 self.html=None36 defgetHtml(self,word): #获取单词翻译的网页37 self.url=self.url %word38 print word,":"

39 req =urllib2.Request(self.url)40 fd=urllib2.urlopen(req)41 self.html=fd.read()42 self.html=unicode(self.html,'utf-8')43 fd.close()44

45 defparseHtml(self): #解析调用46 parser =MyHTMLParser()47 self.html=parser.unescape(self.html)48 parser.feed(self.html)49 s=parser.getTrans()50 t=1

51 for i ins:52 print t,'.',i53 t+=1

54

55 if __name__=='__main__':56 t=trans()57 t.getHtml(sys.argv[1])58 t.parseHtml()59

终端操作:

05:07@:~/workspace$ ./dic.py action

action :

美 [ˈækʃ(ə)n]

英 [ˈækʃ(ə)n]1. 行动;行为;诉讼;战斗2. 务必做3 . 动作;操作;作用

终端用起来也不甚方便,有时间把代码搬进图形程序中.....pyQt还是kivy等图形库,

用过pyQt,抽时间看看吧。

本人的注释是写博客后来加上去的,可以直接删了,或者添加# -*- coding: utf-8 -*-

对于html的解析另一个不错的模块库是BeautifulSoup,解析相当给力。但是需要自己安装

这个库。和上面代码功能一样,但是使用BeautifulSoup解析的。代码如下:

ContractedBlock.gif

ExpandedBlockStart.gif

1 #!/usr/bin/python

2 importurllib2,sys3 from BeautifulSoup importBeautifulSoup4 classMyHTMLParser:5 def __init__(self):6 self.trans=[]7 self.us=None8 self.uk=None9 self.define=True10 deffeed(self,html):11 parsed_html=BeautifulSoup(html)12 self.us=parsed_html.find('div',{'class':'hd_prUS'}).text13 self.uk=parsed_html.find('div',{'class':'hd_pr'}).text14 self.us=self.us.replace(' ',' ')15 self.uk=self.uk.replace(' ',' ')16 print self.us,',',self.uk17 self.define=parsed_html.findAll('span',{'class':'def'})18 for t inself.define:19 self.trans.append(t.text)20 defgetTrans(self):21 returnself.trans22 classtrans:23 _URL='http://cn.bing.com/dict/search'

24 def __init__(self):25 self.url=trans._URL+"?q=%s&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH"

26 self.html=None27 defgetHtml(self,word):28 self.url=self.url %word29 print word,":"

30 req =urllib2.Request(self.url)31 fd=urllib2.urlopen(req)32 self.html=fd.read()33 fd.close()34

35 defparseHtml(self):36 parser =MyHTMLParser()37 parser.feed(self.html)38 s=parser.getTrans()39 t=1

40 for i ins:41 print t,'.',i42 t+=1

43

44 if __name__=='__main__':45 t=trans()46 t.getHtml(sys.argv[1])47 t.parseHtml()

View Code

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

清空缓存的命令_超详细的mysql数据库查询缓存原理解析、涉及命令、流程分析等...

概述mysql查询缓存在数据库优化可以起到很大的作用,今天主要针对这一块做一个总结,下面一起来看看吧~一、缓存条件,原理MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集,MySql在实现Query Cache的具体技术细…

和lua的效率对比测试_Unity游戏开发Lua更新运行时代码!

最近沉迷lua脚本热更,想说这个可以提高多少菜鸡的调试效率,找了网上好多文章,但是都不行,尝试了很久,并且自己测试和学习,写了一遍,勉强能热更了。下面记录一下热更Lua的过程。一、用来卸载表格…

nodejs cluster ip hash_redis集群架构了解一下?一致性hash了解吗?

在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有 codis,或者 twemproxy,都有。有一些 redis 中间件,你读写 redis 中间件,redis 中间件…

python 连接oracle_常用的Python库,给大家分享一下!

Tkinter———— Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复…

python 前端学习_python学习之路7 前端学习3

1.页面布局PosTion :fixedTitle.left{float:left;}.right{float:right;}.head{height:58px;background-color:#3c3c3c;}.head .fontsquarl{width:120px;height:58px;background-color:#F22E00;line-height:58px;}.head .logosuqarl{width:120px;height:58px;background-color:#…

2.5d generator 2.0_ps插件【2.5D插件】

近一两年来创意插画在视觉上的使用越来越多,设计师们都愈加倾向于使用漂亮的插画和产品结合让自己的设计脱颖而出。在最近这段时间新涌现的设计作品当中,强烈的视觉冲击力和产品结合的展现是它们共通的特点。那么2.5D插画也是作为近一两年的发展趋势&…

人工神经网络_制作属于自己的人工神经网络

在本文中,我已经实现了具有Dropout和L2正则化的人工神经网络的完全向量化代码。在本文中,我实现了一个在多个数据集上测试的人工神经网络的完全向量化python代码。此外,并对Dropout和L2正则化技术进行了实现和详细说明。强烈建议通过人工神经…

[leedcode 52] N-Queens II

Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions. public class Solution {//本题类似于N-Queens,这个更简单一些,只需要求出解法的个数即可,因此没有了prin…

uinty粒子系统子物体变大_Unity2018粒子系统全息讲解,坑深慎入(3)

马上注册,加入CGJOY,让你轻松玩转CGJOY。您需要 登录 才可以下载或查看,没有帐号?立即注册x200357v0p9jufzelwj0uuj.jpg (60.94 KB, 下载次数: 16)2018-6-11 20:22 上传声明!声明!声明!这不会让…

第16/24周 SQL Server 2014中的基数计算

大家好,欢迎回到性能调优培训。上个星期我们讨论在SQL Server里基数计算过程里的一些问题。今天我们继续详细谈下,SQL Server 2014里引入的新基数计算。 新基数计算 SQL Server 2014里一个增强是新的基数计算。上个星期你已经学到老基数计算有些限制&…

mysql主从复制不同步案例_Mysql主从不同步问题处理案例

在使用Mysql的主从复制架构中,有两个比较头疼的问题:1、主从数据不同步后如何处理2、主从同步延迟问题如何解决本文将根据实际案例来分析下问题1,至于问题2多数文档介绍的办法是启用多线程复制来解决,言归正传,这里的问…

python3.6生成exe_Python 3.6打包成EXE可执行程序的实现

1、下载pyinstaller python 3.6 已经自己安装了pip,所以只需要执行 pip install pyinstaller就可以了2、打包程序 进入到你你需要打包的目录;比如我在H:\xcyk开始打包,执行pyinstaller xxx.py我们发现,竟然报错!&#…

opencvpython教程百度云资源_Python+OpenCV图像处理入门,视频教程下载

课程介绍: 李老师讲课生动、深入浅出,出版OpenCV编程案例详解、Python-OpenCV图穷录、MATLAB图像处理、MATLAB图像案例教程等在线课程。 本课程系统概括了Python-OpenCV的使用方法,让学习者快速入门。根据本课程规划的图书《Python-OpenCV图穷…

将结构体写入文件_将COCO检测结果写入json文件

最近很多朋友留言问我如何将检测结果写入json文件并且用于COCO API的评估,之前对于检测结果的格式已经做了简单的说明,这里提供一些简单的函数,直接调用将结果写入即可。用于COCO API测试的文件格式HUST小菜鸡:用于COCO API测试的…

js for循环_JS 函数的执行时机(深入理解6个6)

定时器:setTimeout()setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式提示: 1000 毫秒 1 秒。 提示: 如果你只想重复执行可以使用 setInterval() 方法。 提示: 使用 clearTimeout() 方法来阻止函数的执行。语法&#x…

OCLint+Xcode 代码规范利器

很多公司里面都会强调代码规范的问题,开发者也都知道代码规范的好处。可实际开发中往往因为各种原因使我们把它的优先级不知不觉中降低了。  这里向一个有代码追求和洁癖的程序猿推荐一个分析工具,它可以成为你重构代码或着review的基本规则 OCLint是一…

MySQL求类型为GX的平均积分_mysql基本操作

一、连接操作格式:mysql-h主机地址 -u用户名 -p用户密码例:连接到远程主机上的mysql假设远程主机的IP为:110.110.110.110用户名为root,密码为abcd123则键入以下命令:mysql-h110.110.110.110-uroot-pabcd123二、用户级操作1、selec…

k均值聚类算法优缺点_Grasshopper实现K均值聚类算法

本文很长很长,有很多很多图,包含以下部分:1.算法简介2.如何分类平面点3.如何分类空间点4.如何分类多维数据5.后记提醒:以下内容包括:智障操作,无中生友,重复造轮子 等1.算法简介k均值聚类算法&a…

fullgc频繁的原因_系统运行缓慢,CPU 100%,Full GC次数过多,这一招帮你全搞定

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排…

WEKA “Detailed Accuracy By Class”和“Confusion Matrix”含义

原文 Summary (总结)Correctly Classified Instances(正确分类的实例) 45 90 %Incorrectly Classified Instances (错误分类的实例) 5 10 %Kappa …