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


Posted in Python onJuly 03, 2016

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

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中的json的基本使用方法
Dec 21 Python
python spyder中读取txt为图片的方法
Apr 27 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
Python读写文件基础知识点
Jun 10 Python
django框架模板语言使用方法详解
Jul 18 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
python要安装在哪个盘
Jun 15 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
python3处理word文档实例分析
Dec 01 Python
python自动计算图像数据集的RGB均值
Jun 18 Python
python中函数传参详解
Jul 03 #Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 #Python
Ruby元编程基础学习笔记整理
Jul 02 #Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 #Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 #Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 #Python
python图片验证码生成代码
Jul 02 #Python
You might like
解析thinkphp基本配置 convention.php
2013/06/18 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
详解Python中列表和元祖的使用方法
2015/04/25 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
Python列表list操作相关知识小结
2020/01/29 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
详解python metaclass(元类)
2020/08/13 Python
大学自主招生自荐信
2013/12/16 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2014年司法局工作总结
2014/12/11 职场文书
杜甫草堂导游词
2015/02/03 职场文书
公司表扬稿范文
2015/05/05 职场文书
硕士学位申请报告
2015/05/15 职场文书
元旦晚会开场白
2015/05/29 职场文书