使用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中global用法实例分析
Apr 30 Python
使用python遍历指定城市的一周气温
Mar 31 Python
python基础教程项目三之万能的XML
Apr 02 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
python3中property使用方法详解
Apr 23 Python
Python笔记之观察者模式
Nov 20 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
python简单利用字典破解zip文件口令
Sep 07 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
如何使用PyCharm及常用配置详解
Jun 03 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获取数组长度的方法(有实例)
2013/10/27 PHP
php实现计数器方法小结
2015/01/05 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
php7 新增功能实例总结
2020/05/25 PHP
js实现简单的可切换选项卡效果
2015/04/10 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
Python3爬楼梯算法示例
2019/03/04 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
python 类之间的参数传递方式
2019/12/20 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
新闻专业本科生的自我评价分享
2013/11/20 职场文书
给女朋友的道歉信
2014/01/10 职场文书
派出所所长先进事迹
2014/05/19 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
毕业生见习报告总结
2014/11/08 职场文书
公司辞职信模板
2015/05/13 职场文书
新人入职感言
2015/07/31 职场文书
五年级数学教学反思
2016/02/16 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
常用的Python代码调试工具总结
2021/06/23 Python
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
优化Mysql查询的示例
2022/04/26 MySQL