使用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 学习笔记
Dec 27 Python
Python字符串格式化输出方法分析
Apr 13 Python
利用python批量检查网站的可用性
Sep 09 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
python实现黑客字幕雨效果
Jun 21 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
在pycharm中显示python画的图方法
Aug 31 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
使用Django清空数据库并重新生成
Apr 03 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
python中的被动信息搜集
Apr 29 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中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
php共享内存段示例分享
2014/01/20 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
Smarty保留变量用法分析
2016/05/23 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
Js 随机数产生6位数字
2010/05/13 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
python多线程操作实例
2014/11/21 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
企业给企业的表扬信
2014/01/13 职场文书
学校师德承诺书
2014/05/23 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python