python 脚本 调用 google dictionary

网上有通过python来调用google translate的,不过结果不是很细, 于是又写了个取词典的.
需要lxml支持, xpath来解析文档比原始的 SGMLParser 要舒服很多.


import urllib2
import urllib
from StringIO import StringIO
from lxml import etree

def grabData(queryWord):
requestUrl="http://www.google.cn/dictionary?langpair=en|zh-CN&q=what&hl=zh-CN&aq=f"
requestUrl=requestUrl.replace("what",queryWord)
req=urllib2.Request(requestUrl)
data=urllib2.urlopen(req).read()
return data

def parseData(htmlStr):
result=[]
parser=etree.HTMLParser()
tree=etree.parse(StringIO(htmlStr),parser)
element=tree.xpath("//div[@class='dct-srch-rslt']/ul[@class='dfnt']/li")
for item in element:
result.append(item.findtext("h4"))
for subitem in item.xpath("ol/li"):
detailItems=subitem.find("ul") #multi item
if detailItems:
result.append(subitem.findtext("span").replace("\n",""))
else :
detailItems=subitem

ex=""
for textElement in detailItems.iter():
if textElement.text:
ex=ex+str(textElement.text)
result.append(ex.replace("\n",""))
return result

if __name__ == "__main__":
content=parseData(grabData("love"))
for line in content:
print line


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值