使用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实现多行注释的另类方法
Aug 22 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
使用python绘制常用的图表
Aug 27 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
Python递归函数 二分查找算法实现解析
Aug 12 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
Django REST Framework之频率限制的使用
Sep 29 Python
Python使用for生成列表实现过程解析
Sep 22 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
pytorch中的numel函数用法说明
May 13 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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版(5)
2006/10/09 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
微信小程序实现拖拽功能
2019/09/26 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
匡威英国官网:Converse英国
2018/12/02 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
企业门卫岗位职责
2013/12/12 职场文书
愚人节活动策划方案
2014/03/11 职场文书
大学生就业策划书范文
2014/04/04 职场文书
导师推荐信范文
2014/05/09 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书