使用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选择排序算法实例总结
Jul 01 Python
高效使用Python字典的清单
Apr 04 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
Python识别html主要文本框过程解析
Feb 18 Python
python实现在线翻译功能
Mar 03 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python语言中有算法吗
Jun 16 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 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
用PHP调用数据库的存贮过程
2006/10/09 PHP
PHPCMS的使用小结
2010/09/20 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
PHP7.0版本备注
2015/07/23 PHP
php处理带有中文URL的方法
2016/07/11 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Python错误处理操作示例
2018/07/18 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
行政人员工作职责
2013/12/05 职场文书
创先争优活动承诺书
2014/08/30 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python