使用Python从有道词典网页获取单词翻译

系统 1402 0

从有道词典网页获取某单词的中文解释。

            
import re
import urllib

word=raw_input('input a word\n')
 
url='http://dict.youdao.com/search?q=%s'%word
 
content=urllib.urlopen(url)
 
pattern=re.compile("",re.DOTALL)
 
result=pattern.search(content.read()).group()
pattern2=re.compile('
            
  • .*?
  • ') for i in pattern2.findall(result): print i.strip('
  • ').strip('
  • ').decode('utf-8')

    再给大家分享一个命令行版的

                
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Date  : 2014-04-03 21:12:16
    # @Function: 有道翻译命令行版
    # @Author : BeginMan
    
    import os
    import sys
    import urllib
    import urllib2
    reload(sys)
    sys.setdefaultencoding("utf-8")
    import simplejson as json
    import platform
    import datetime
    
    API_KEY = '******'
    KEYFORM = '******'
      
    def GetTranslate(txt):
      url = 'http://fanyi.youdao.com/openapi.do'
      data = {
      'keyfrom': KEYFORM,
      'key': API_KEY,
      'type': 'data',
      'doctype': 'json',
      'version': 1.1,
      'q': txt
      }
      data = urllib.urlencode(data)
      url = url+'?'+data
      req = urllib2.Request(url)
      response = urllib2.urlopen(req)
      result = json.loads(response.read())
      return result
      
    def Sjson(json_data):
      query = json_data.get('query','')        # 查询的文本
      translation = json_data.get('translation','')  # 翻译
      basic = json_data.get('basic','')        # basic 列表
      sequence = json_data.get('web',[])       # 短语列表
      phonetic,explains_txt,seq_txt,log_word_explains = '','','',''
      
      # 更多释义
      if basic:
        phonetic = basic.get('phonetic','')     # 音标
        explains = basic.get('explains',[])     # 更多释义 列表
        for obj in explains:
          explains_txt += obj+'\n'
          log_word_explains += obj+','  
      # 句子解析
      if sequence:
        for obj in sequence:
          seq_txt += obj['key']+'\n'
          values = ''
          for i in obj['value']:
            values += i+','
          seq_txt += values+'\n'
        
      print_format = '*'*40+'\n'
      print_format += u'查询对象: %s [%s]\n' %(query,phonetic)  
      print_format += explains_txt
      print_format += '-'*20+'\n'+seq_txt
      print_format += '*'*40+'\n'
      print print_format
      choices = raw_input(u'是否写入单词本,回复(y/n):')
      if choices in ['y','Y']:
        filepath = r'/home/beginman/pyword/%s.xml' %datetime.date.today()
        if (platform.system()).lower() == 'windows':
          filepath = r'E:\pyword\%s.xml' %datetime.date.today()
        fp = open(filepath,'a+')
        file = fp.readlines()
        if not file:
          fp.write('
                
                  \n')
          fp.write(u"""  
                  
                    \n  
                    
                      %s
                    
                    \n  
                    
                                      
                    \n  
                    
                                      
                    \n  
                    
                      %s
                    
                    \n  
                    
                      1
                    
                    \n  
                  
                  \n\n""" %(query,log_word_explains,phonetic,datetime.date.today()))
        fp.close()
        print u'写入成功.'
    
    def main():
      while True:
        txt = raw_input(u'请输入要查询的文本:\n')
        if txt:
          Sjson(GetTranslate(txt))
    
    if __name__ == '__main__':
      main()
                
              

    以上就是本文的所有内容了,希望大家能够喜欢


    更多文章、技术交流、商务合作、联系博主

    微信扫码或搜索:z360901061

    微信扫一扫加我为好友

    QQ号联系: 360901061

    您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

    【本文对您有帮助就好】

    您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

    发表我的评论
    最新评论 总共0条评论