使用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画一颗心的方法示例
Jan 31 Python
python简单实例训练(21~30)
Nov 15 Python
PyQt5实现下载进度条效果
Apr 19 Python
python验证码识别教程之滑动验证码
Jun 04 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python异常模块traceback用法实例分析
Oct 22 Python
python中property和setter装饰器用法
Dec 19 Python
tensorflow使用指定gpu的方法
Feb 04 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 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
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP实现的json类实例
2015/07/28 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
浅谈js中的bind
2019/03/18 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
python脚本监控docker容器
2016/04/27 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
python绘制直线的方法
2018/06/30 Python
python单例模式实例解析
2018/08/28 Python
Python接口测试get请求过程详解
2020/02/28 Python
python文件及目录操作代码汇总
2020/07/08 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
药学专业学生的自我评价分享
2014/02/06 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
法律系毕业生求职信
2014/05/28 职场文书
人事专员岗位说明书
2014/07/29 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL