您的位置:首页 > 编程语言 > Python开发

使用Python从有道词典网页获取单词翻译

2016-07-03 00:00 991 查看
从有道词典网页获取某单词的中文解释。

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翻译软件实现代码(使用google api完成)
python在命令行下使用google翻译(带语音)
python3使用urllib示例取googletranslate(谷歌翻译)
python使用百度翻译进行中翻英示例
使用Python3中的gettext模块翻译Python源码以支持多语言
用Python编写一个基于终端的实现翻译的脚本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 翻译