python有道翻译

版本一:

使用正则:

正则我本人使用的比较烂,你可以完全用自己的匹配方式

import re,urllib
    
aa="http://dict.youdao.com/search?tab=chn&keyfrom=dict.top&q="
print ("input q! to exit ")
while 1:
    word=raw_input(">>>")
    if word=="q!":
        exit()
    else:
        word=word.replace(' ','+')            
        url=aa+word
            s=urllib.urlopen(url).read()
        ss = "".join(s).replace("\n"," ")
        #print type(ss)
        #ss = ss.replace("\n"," ")
        comm = re.findall(r'<div id="etcTrans" class="trans-container tab-content">(.*?)</div>',ss)
        #print comm
        con = "".join(comm)
        dd = con.replace(" ","")
        kk = re.findall(r'[^a-z]',dd)
        kk = re.findall(r'[^a-z<>\.//]',dd)
        print "".join(kk)


版本二

使用HTMLParser

import re,urllib
from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
    
    def __init__(self):
        #self.li = ''
        self.readingtitle = 0
        HTMLParser.__init__(self)

    def handle_starttag(self,tag,attrs):
        if tag == 'div':
            for (key,value) in attrs:
                if ('id','etcTrans') in attrs:
                    self.readingtitle = 1

    def handle_data(self,data):
        if self.readingtitle == 1:
            print "".join(data).replace("\n","").replace("\r\n","")
            #self.li += data
        #print self.li

    def handle_endtag(self,tag):
        if tag == 'div':
            self.readingtitle = 0
    #def handle_data(self,data):
        #print data
    
aa="http://dict.youdao.com/search?tab=chn&keyfrom=dict.top&q="
print ("input q! to exit ")
while 1:
    word=raw_input(">>>")
    if word=="q!":
        exit()
    else:
        word=word.replace(' ','+')            
        url=aa+word
            s=urllib.urlopen(url).read()
        ss = "".join(s)
        #print type(ss)
        #ss = ss.replace("\n"," ")
        #print s
        parser = MyHTMLParser()
        #print parser.li
        parser.feed(s)
        parser.close()

 这个版本是完成可以提取出信息的,但是不知为什么老是提取完信息后就抛出错误,请朋友能够运行看看帮我指出错误。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值