Python有道字典

Python有道字典,第1张

概述Python有道字典

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#----------------------------------------------------------------# -*- Coding: utf-8 -*-#!/usr/bin/env python#----------------------------------------------------------------#   Author : Scharfsinnig##   E-Mail : [email protected]##   file   : WebDict.py##   Introduction:#   脚本主要是对有道网的单词查询网页,进行简单的信息提取任务,找到#   单词的翻译结果。方便自己在终端下对不认识的单词进行查询。#----------------------------------------------------------------import reimport timeimport threadimport urllibimport urllib2from urllib import quoteclass SpIDer_Youdao:    #初始化    def __init__(self):        #有道网页翻译段        self.Trans_Youdao_Tag = re.compile(r'\s?<li>.*?</li>\s?')        #21世纪大词典段        self.Trans_Shiji_Tag = re.compile(r'\s?<span.*?>.*?</span>')        #退出标志         self.run = True    #获得查询的单词    def SearchWord(self):        S_Word = raw_input("\n#[输入单词]\n>")                return S_Word    #得到URL    def GetUrl(self):        SWord = self.SearchWord()        #加上查询的单词以后        if quote(SWord) == SWord:            MyUrl = "http://dict.youdao.com/search?len=eng&q="+quote(SWord)+"&keyfrom=dict.top"            return MyUrl    #获得页面    def GetPage(self):        #获取URL        Youdao_Url = self.GetUrl()        #伪装成浏览器请求        user_agent = 'Mozilla/5.0 (X11; Ubuntu; linux x86_64; rv:32.0) Gecko/20100101 firefox/32.0'        headers = { 'User-Agent' : user_agent }        req = urllib2.Request(Youdao_Url,headers = headers)        Res = urllib2.urlopen(req)        #将其他编码的字符串转换成unicode编码        ResultPage = Res.read().decode("utf-8")        #ResultPage = Res.read()        return ResultPage    #开始提取网页中的信息    def ExtractPage(self):        #获得页面        MyPage = self.GetPage()        #提取有道的基本翻译        YoudaoTrans = self.Trans_Youdao_Tag        #提取21世纪词典的翻译        ShijiTrans = self.Trans_Shiji_Tag        print "--------------------------------------------"         YouDaoTrans = self.Trans_Youdao_Tag        TransYdIterator = YouDaoTrans.finditer(MyPage)        print "#(翻译来自有道词典):"        myItems = re.findall('<div.*?>(.*?)<div ID="webTrans" >',MyPage,re.S)            for item in myItems:            YDTmp = item        TransYdIterator = YouDaoTrans.finditer(YDTmp)        for iterator in TransYdIterator:            YouDao = iterator.group()            YDTag = re.compile('\s?<.*?>')            print YDTag.sub('',YouDao)        print "--------------------------------------------"         TransSjIterator = ShijiTrans.finditer(MyPage)        print "#(翻译来自21世纪大词典):"        for iterator in TransSjIterator:            ShiJi = iterator.group()            SJTag = re.compile('\s?<.*?>')            print SJTag.sub('',ShiJi)        print "--------------------------------------------"     #启动爬虫    def Start(self):        while self.run:            S_Word = raw_input("\n#[\"!\"号退出.回车继续.]\n>")            if S_Word != "!":                self.ExtractPage()                #thread.start_new_thread(self.ExtractPage,())                #time.sleep(5)            else:                self.run = False                                if __name__ == '__main__':    mydict = SpIDer_Youdao()    mydict.Start()

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的Python有道字典全部内容,希望文章能够帮你解决Python有道字典所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存