使用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验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
python中wx模块的具体使用方法
May 15 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
python实现登录与注册系统
Nov 30 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对称加密算法示例
2014/05/07 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
实例讲解PHP表单处理
2019/02/15 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
详解vue axios二次封装
2018/07/22 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python中的rfind()方法使用详解
2015/05/19 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
将python图片转为二进制文本的实例
2019/01/24 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
大学生学年自我鉴定
2014/02/10 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
2014年基层党建工作总结
2014/11/11 职场文书