VIM集成Google查字典功能

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 : , ,

Feedback

请发表评论
发表评论
标题
 
姓名
 
网址
验证码
 
评论  
 

Copyright twinsant.