Posted on 2007年1月12日 3:01
在Python邮件组看到Kula写的调用Google来查英文单词的脚本,拿回来改了改,然后写了个VIM脚本调用。
输入命令:Dict python

结果如下:

附:dict.py
#!/usr/bin/env python
# -*- coding: cp936 -*-
# Codebase written by Kula <kulasama@gmail.com>
# Refactoringed by twinsant
import httplib
import re
def format(l):
if l:
return l[0] + ' : ' + '; '.join(l[1])
else:
return '查询没有结果,请检查输入的单词是否拼写错误'
def split_result(result):
regex = re.compile(r'<b>([a-zA-Z]+)</b>:(.+)')
find = regex.findall(result)
if find:
group = find[0]
return group[0], [cn_word.strip() for cn_word in group[1].split(';')]
else:
return None
def translate(en_word):
google = 'www.google.com'
conn = httplib.HTTPConnection(google)
fy_search = '/search?q=fy%%20%s&hl=zh-CN' %(en_word)
conn.request("GET", fy_search)
response = conn.getresponse()
data = response.read()
startStr = r'<script>function ql_ctu(x) {new Image().src = x;}</script>'
startLen = len(startStr)
start = data.find(startStr)
endStr = r'<table border=0 cellpadding=0 cellspacing=0><tr><td width=47 valign=middle><img border=0 width=40 height=30 valign=middle src="/images/dictblue.gif">'
end = data.rfind(endStr)
result = data[start+startLen:end]
return split_result(result)
if __name__ == '__main__':
while True:
prompt = '请输入要查询的英文单词(输入!quit退出): '
input = raw_input(prompt)
if input == '!quit':
break
output = format(translate(input))
print output
Technorati : Google, Python, VIM