日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2023/12/10 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python电子英汉词典显示_python网页抓取之英汉字典 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux的字典本人實(shí)在用起來(lái)不舒服(stardict挺不錯(cuò)的,但是界面好看些,功能簡(jiǎn)單易用就好了)

,在線翻譯又得打開龐大的瀏覽器....就打算自己寫個(gè),但是時(shí)間有限,為了簡(jiǎn)單,

還是用python抓取網(wǎng)頁(yè)來(lái)的快些。本人用的必應(yīng)字典。

獲取某個(gè)單詞解釋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): #獲取單詞翻譯的網(wǎng)頁(yè)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): #解析調(diào)用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. 行動(dòng);行為;訴訟;戰(zhàn)斗2. 務(wù)必做3 . 動(dòng)作;操作;作用

終端用起來(lái)也不甚方便,有時(shí)間把代碼搬進(jìn)圖形程序中.....pyQt還是kivy等圖形庫(kù),

用過(guò)pyQt,抽時(shí)間看看吧。

本人的注釋是寫博客后來(lái)加上去的,可以直接刪了,或者添加# -*- coding: utf-8 -*-

對(duì)于html的解析另一個(gè)不錯(cuò)的模塊庫(kù)是BeautifulSoup,解析相當(dāng)給力。但是需要自己安裝

這個(gè)庫(kù)。和上面代碼功能一樣,但是使用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

總結(jié)

以上是生活随笔為你收集整理的python电子英汉词典显示_python网页抓取之英汉字典的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。