使用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 07 Python
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
基于python log取对数详解
Jun 08 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
Django 内置权限扩展案例详解
Mar 04 Python
基于Python的PIL库学习详解
May 10 Python
Python转换时间的图文方法
Jul 01 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
Python 串口通信的实现
Sep 29 Python
Django2.1.7 查询数据返回json格式的实现
Dec 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
pyqt5实现登录界面的模板
2020/05/30 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
python 线程的五个状态
2020/09/22 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
电子商务应届生求职信
2013/11/16 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
爱国演讲稿400字
2014/05/07 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书