使用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实现字符串格式化输出的方法详解
Sep 20 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
利用python如何处理nc数据详解
May 23 Python
python爬取微信公众号文章
Aug 31 Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Python字节单位转换实例
Dec 05 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
python在package下继续嵌套一个package
Apr 14 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生成静态页
2006/11/25 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
php中计算时间差的几种方法
2009/12/31 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
利用Python查看目录中的文件示例详解
2017/08/28 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
WxPython实现无边框界面
2019/11/18 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
惊天动地观后感
2015/06/10 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
初一语文教学反思
2016/03/03 职场文书
golang特有程序结构入门教程
2021/06/02 Python