使用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 fileinput模块使用介绍
Nov 30 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python异常处理例题整理
Jul 07 Python
应用OpenCV和Python进行SIFT算法的实现详解
Aug 21 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
python 瀑布线指标编写实例
Jun 03 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
python 模拟登陆github的示例
Dec 04 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP echo()函数讲解
2019/02/15 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
python实现贪吃蛇小游戏
2020/03/21 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
python安装及变量名介绍详解
2020/12/12 Python
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
局域网定义和特性
2016/01/23 面试题
5.1手机促销活动
2014/01/17 职场文书
发展部经理职责规定
2014/02/22 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
2014年文员工作总结
2014/11/18 职场文书
单位未婚证明范本
2014/11/25 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python