从有道词典网页获取某单词的中文解释。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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' )
|
再给大家分享一个命令行版的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#!/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()
|
以上就是本文的所有内容了,希望大家能够喜欢