使用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实现接口的方法
Jul 07 Python
python之Character string(实例讲解)
Sep 25 Python
深入浅析python with语句简介
Apr 11 Python
查看Django和flask版本的方法
May 14 Python
django如何连接已存在数据的数据库
Aug 14 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
python如何实现单链表的反转
Feb 10 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 Python
python字典进行运算原理及实例分享
Aug 02 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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电台频率大全 - 23 四川省
2020/03/11 无线电
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP实现简易图形计算器
2020/08/28 PHP
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
Vue内容分发slot(全面解析)
2017/08/19 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
对python中的高效迭代器函数详解
2018/10/18 Python
python assert的用处示例详解
2019/04/01 Python
学习Django知识点分享
2019/09/11 Python
python中property和setter装饰器用法
2019/12/19 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
函授教育个人学习的自我评价
2013/12/31 职场文书
淘宝活动策划方案
2014/02/06 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
参观接待方案
2014/03/17 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书