使用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通过urllib2获取带有中文参数url内容的方法
Mar 13 Python
Django中几种重定向方法
Apr 28 Python
Python 模板引擎的注入问题分析
Jan 01 Python
Django如何配置mysql数据库
May 04 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
浅谈python之新式类
Aug 12 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Django app配置多个数据库代码实例
Dec 17 Python
Python pymysql模块安装并操作过程解析
Oct 13 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
Python开发五子棋小游戏
May 02 Python
pycharm无法安装cv2模块问题
May 20 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
Ajax PHP分页演示
2007/01/02 PHP
php email邮箱正则
2008/10/08 PHP
20个PHP常用类库小结
2011/09/11 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
JavaScript字符串对象
2017/01/14 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
python实现的简单抽奖系统实例
2015/05/22 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
详解Python核心对象类型字符串
2018/02/11 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Python 如何展开嵌套的序列
2020/08/01 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
Html5定位终极解决方案
2020/02/05 HTML / CSS
监察建议书范文
2014/03/12 职场文书
汽车转让协议书范本
2014/12/07 职场文书
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
vue实现在data里引入相对路径
2022/06/05 Vue.js
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS
Mysql中mvcc各场景理解应用
2022/08/05 MySQL