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的具体技术细…

python与tensorflow的关系_python – 在TensorFlow,Session.run()和Tensor.eval()之间有什么区别?...

如果你有Tensor t,调用 t.eval()相当于调用tf.get_default_session()。run(t)。 您可以将会话设置为默认值,如下所示: t tf.constant(42.0) sess tf.Session() with sess.as_default(): # or with sess: to close on exit assert sess is t…

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

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

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

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

硬盘主分区和拓展分区

主分区,也称为主磁盘分区,和扩展分区、逻辑分区一样,是一种分区类型。主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑磁盘(在这一点上主分区和逻辑分区很相似,但主分区是直接在硬盘上划分的,逻辑分区则必须建立于扩展分区中)。 1. 一个硬盘可以有1到3个主分…

python如何比较大小_python列表如何比较大小

python列表如何比较大小 发布时间:2020-09-22 13:58:58 来源:亿速云 阅读:59 作者:小新 这篇文章给大家分享的是有关python列表如何比较大小的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 Python中可以使用cmp()函数比较两个列表的大小。 c…

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

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

js 获取某年的某天是第几周

/**2 * 判断年份是否为润年3 *4 * param {Number} year5 */6 function isLeapYear(year) {7 return (year % 400 0) || (year % 4 0 && year % 100 ! 0);8 }9 /**10 * 获取某一年份的某一月份的天数11 *12 * param {Number} year13 * param {Number} month14 *…

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插画也是作为近一两年的发展趋势&…

(转)女生应该找一个玩ACM的男生

1、强烈的事业心 将来,他也一定会有自己热爱的事业。而且,男人最性感的时刻之一,就是他专心致志做事的时候。所以,找一个机会在他全神贯注玩ACM的时候,从侧面好好观察他,你就会发现我说的话没错。 2、永不放…

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

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

decorators 参数_Python Decorators(二):Decorator参数

Python Decorators II: Decorator ArgumentsOctober 19, 2008(本文是(Python3之模式和用法)一书的章节节选第二部分,点击阅读第一部分)回顾:不含参数的decorators在前文中,我介绍了如何使用不含参数的decorators,并使用类来实现。…

[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…

python文本风格_以写代学:python 良好的代码风格实例解析

将用户输入的数据存入到一个文件当中去,这个文件必须是原来不存在的 (1)起始行 (2)模块文档字符串 (3)导入模块 (4)全局变量声明 (5)类定义 &…

三角形和矩形傅里叶变换_信号与系统:第三章傅立叶变换2.ppt

第三节 连续时间周期信号的频谱分析 一)周期矩形脉冲的频谱 三、 周期信号的有效频帶宽度(简称带宽) 四、 周期信号的功率谱 第四节、 连续时间非周期信号的频谱 一、 从傅立叶级数到傅里叶变换 三、一些典型信号的 频谱函数F(jw) (即傅里叶变换) (2)单边指数信号的傅里叶变换 …

Sock基础

z1 客户端 //客户端 通信套接字 //1.创建监听套接字 使用 ip4协议,流式传输,TCP连接 Socket sokMsg new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //2.获取要连接的服务端 节点 //2.1获取网络节点对象 IPAddress add…

python转r字符_python r不转义变量

普通字符串常量 含有转义字符,会按照转义字符的意义输出,如下:text"1 E:/Code/PycharmProjects/QtDemo/ToolsList\__pycache__\start.cpython-36.pyc \r\n" print(text) 输出如下:1 E:/Code/PycharmProjects/QtDemo/Too…

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里一个增强是新的基数计算。上个星期你已经学到老基数计算有些限制&…