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

yipeiwu_com6年前Python基础

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

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("</h2.*?</ul>",re.DOTALL)
 
result=pattern.search(content.read()).group()
pattern2=re.compile('<li>.*?</li>')
for i in pattern2.findall(result):
  print i.strip('<li>').strip('</li>').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('<wordbook>\n')
      fp.write(u"""  <item>\n  <word>%s</word>\n  <trans><![CDATA[%s]]></trans>\n  <phonetic><![CDATA[[%s]]]></phonetic>\n  <tags>%s</tags>\n  <progress>1</progress>\n  </item>\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()

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

相关文章

Python机器学习之决策树算法

Python机器学习之决策树算法

一、决策树原理 决策树是用样本的属性作为结点,用属性的取值作为分支的树结构。 决策树的根结点是所有样本中信息量最大的属性。树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属...

python3下使用cv2.imwrite存储带有中文路径图片的方法

由于imwrite前使用编码在python3中已经不适用,可用imencode代替,以下代码是从视频中获取第2帧保存在中文文件夹下的实例: cap = cv2.VideoCaptur...

python列表与元组详解实例

在这章中引入了数据结构的概念。数据结构是通过某种方式组织在一起的数据元素的集合。在python中,最基本的数据结构就是序列。序列中的每个元素被分配一个序号,即元素的位置,也被称为索引。注...

线程和进程的区别及Python代码实例

线程和进程的区别及Python代码实例

在程序猿的世界中,线程和进程是一个很重要的概念,很多人经常弄不清线程和进程到底是什么,有什么区别,本文试图来解释一下线程和进程。首先来看一下概念: 进程(英语:process),是计算机...

python矩阵转换为一维数组的实例

实例如下所示: >>>from compiler.ast import flatten >>>X matrix([[ 1, 17, 13, 22...