使用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使用random和tertools模块解一些经典概率问题
Jan 28 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
python中lambda与def用法对比实例分析
Apr 30 Python
Python实现文件按照日期命名的方法
Jul 09 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
Django组件之cookie与session的使用方法
Jan 10 Python
python numpy存取文件的方式
Apr 01 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
Python面向对象中类(class)的简单理解与用法分析
Feb 21 Python
基于python实现模拟数据结构模型
Jun 12 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+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
angular中使用Socket.io实例代码
2017/06/03 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
利用python生成照片墙的示例代码
2020/04/09 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
实习单位意见
2015/06/04 职场文书
2016国培学习心得体会
2016/01/08 职场文书
python 提取html文本的方法
2021/05/20 Python
python基于机器学习预测股票交易信号
2021/05/25 Python
nginx共享内存的机制详解
2022/03/21 Servers
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL