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解析的。代码如下:

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

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

  1. python爬虫怎么爬同一个网站的多页数据-如何用Python爬数据?(一)网页抓取

    如何用Python爬数据?(一)网页抓取 你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. 需求 我在公众号后台,经常可以收到 ...

  2. python爬网站数据实例-如何用Python爬数据?(一)网页抓取

    如何用Python爬数据?(一)网页抓取 你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. 需求 我在公众号后台,经常可以收到 ...

  3. Python框架篇:结构化的网页抓取框架-Scrapy

    前言 大家好,我是一身正气的辣条哥 今天主要跟大家分享一下Scrapy,Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的 ...

  4. vs用Python爬数据?(一)网页抓取

    你期待已久的Python网络数据爬虫教程来了.本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel. (由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开.如有需要,请 ...

  5. python爬虫实现股票数据存储_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储!...

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

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

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

  7. python爬今日头条组图_python 爬虫抓取今日头条街拍图片

    1. 打开google浏览器,输入www.toutiao.com, 搜索街拍.html 2.打开开发者选项,network监看加载的xhr, 数据是ajax异步加载的,能够看到preview里面的da ...

  8. python实现登录抓取_Python网页抓取、模拟登录

    #------------------------------------------------------------------------------- # Name: 模拟登录web # P ...

  9. python爬取文本中的成语_python正则表达式抓取成语网站

    #anthor jiqunpeng #time 20121124 import urllib import re def getHtml(url): #从URL中读取html内容 page = url ...

最新文章

  1. iMeta:已被谷歌学术(Google Scholar)收录
  2. android双击熄屏代码,Android响应双击屏幕事件
  3. 利用npm安装/删除/发布/更新/撤销发布包
  4. UA MATH567 高维统计专题1 稀疏信号及其恢复2 用L1-norm作为L0-norm的convex relexation
  5. C#中串口组件的使用方法总结及上位机制作方法
  6. 腾讯专家教你如何保证应用开发安全
  7. oracle取本月最后一天是星期几_oracle SQL语句取本周本月本年的数据
  8. Metal之渲染绘制三角形
  9. 13个开发者技能必知必会!
  10. javascirpt如何模仿块级作用域(js高程笔记)
  11. 微软官方Microsoft文档地址
  12. 【干货】2020十大消费新机遇.pdf(附下载链接)
  13. bzoj 4318: OSU!(概率DP)
  14. Django框架基础之session
  15. 跨网段和同网段的通信
  16. pr中裁剪工具的使用
  17. 云端卫士助力运营商实现DDoS安全业务的统一运营
  18. iOS-QQ音乐播放器的简单实现
  19. 群辉 DSM 7.0 Docker 启动 AdguardHome 屏蔽广告
  20. 蛋白质相互作用系列:GN快速算法

热门文章

  1. css3修改透明png颜色
  2. java 数组排序面试题_Java面试宝典_基础编程练习题_数组排序插值(一)
  3. aix查看lv_Aix 添加VG,LV并挂载使用
  4. Java中的注解以及应用 @Deprecated @SupressWarning @Override
  5. 【OS学习笔记】二十九 保护模式八:任务切换对应的汇编代码之用户程序代码
  6. jq多选框全选,多选
  7. ASP.NET MVC5(一):ASP.NET MVC概览
  8. 性能调优-硬盘方面,操作系统方面,文件系统方面
  9. iOS开发UI篇-在UItableview中实现加载更多功能
  10. 如何配置一个最基本的web富文本编辑器?--之wangEditor(验证成功)