使用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获得图片base64编码示例
Jan 16 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 Python
Python生成随机MAC地址
Mar 10 Python
使用Python编写vim插件的简单示例
Apr 17 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
使用pandas读取文件的实现
Jul 31 Python
详解python logging日志传输
Jul 01 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
教你使用TensorFlow2识别验证码
Jun 11 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
Protoss魔法科技
2020/03/14 星际争霸
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP中常用的转义函数
2014/02/28 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
Python设计模式之观察者模式实例
2014/04/26 Python
Python Sleep休眠函数使用简单实例
2015/02/02 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
python删除某个目录文件夹的方法
2020/05/26 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
个人评价范文分享
2014/01/11 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
Python中super().__init__()测试以及理解
2021/12/06 Python