搜狗云输入法API
2009 11 3 11:59 AM 6118次查看
分类:编程 标签:JavaScript, Python
首先是看源代码,一眼就看到:http://web.pinyin.sogou.com/web_ime/init2_utf8.php
于是打开来,发现是加密过的JavaScript代码,懒得去研究,还是直接抓包吧。
于是启动Firefox,用Live HTTP Headers查看了一下,便发现了这种地址:http://web.pinyin.sogou.com/web_ime/get_ajax/duziele.key
用浏览器打开一看,结果是:
ime_query_res="%E8%82%9A%E5%AD%90%E9%A5%BF%E4%BA%86%EF%BC%9A7%09+%E8%82%9A%E5%AD%90%E9%A5%BF%EF%BC%9A5%09+%E8%82%9A%E5%AD%90%EF%BC%9A4%09+%E7%8B%AC%E8%87%AA%EF%BC%9A4%09+%E7%8B%AC%E8%B5%84%EF%BC%9A4%09+%E7%8B%AC%E5%AD%90%EF%BC%9A4%09+%E7%8A%8A%E5%AD%90%EF%BC%9A4%09+%E8%B5%8C%E8%B5%84%EF%BC%9A4%09+%E6%AF%92%E8%B5%84%EF%BC%9A4%09+%E6%9D%9C%E6%A2%93%EF%BC%9A4%09+%E6%9D%9C%E5%AD%97%EF%BC%9A4%09+%E8%82%9A%E4%BB%94%EF%BC%9A4%09+%E5%BA%A6%EF%BC%9A2%09+%E8%AF%BB%EF%BC%9A2%09+%E9%83%BD%EF%BC%9A2%09+%E7%8B%AC%EF%BC%9A2%09+%E6%AF%92%EF%BC%9A2%09+%E6%9D%9C%EF%BC%9A2%09+%E6%B8%A1%EF%BC%9A2%09+%E8%B5%8C%EF%BC%9A2";ime_query_key="duziele";一看就知道是URL编码,于是拿出Python开始解码:
>>> from urllib2 import unquote
>>> ime_query_res="%E8%82%9A%E5%AD%90%E9%A5%BF%E4%BA%86%EF%BC%9A7%09+%E8%82%9A%E
5%AD%90%E9%A5%BF%EF%BC%9A5%09+%E8%82%9A%E5%AD%90%EF%BC%9A4%09+%E7%8B%AC%E8%87%AA
%EF%BC%9A4%09+%E7%8B%AC%E8%B5%84%EF%BC%9A4%09+%E7%8B%AC%E5%AD%90%EF%BC%9A4%09+%E
7%8A%8A%E5%AD%90%EF%BC%9A4%09+%E8%B5%8C%E8%B5%84%EF%BC%9A4%09+%E6%AF%92%E8%B5%84
%EF%BC%9A4%09+%E6%9D%9C%E6%A2%93%EF%BC%9A4%09+%E6%9D%9C%E5%AD%97%EF%BC%9A4%09+%E
8%82%9A%E4%BB%94%EF%BC%9A4%09+%E5%BA%A6%EF%BC%9A2%09+%E8%AF%BB%EF%BC%9A2%09+%E9%
83%BD%EF%BC%9A2%09+%E7%8B%AC%EF%BC%9A2%09+%E6%AF%92%EF%BC%9A2%09+%E6%9D%9C%EF%BC
%9A2%09+%E6%B8%A1%EF%BC%9A2%09+%E8%B5%8C%EF%BC%9A2"
>>> print unicode(unquote(ime_query_res), 'utf8')
肚子饿了:7 +肚子饿:5 +肚子:4 +独自:4 +独资:4
+独子:4 +犊子:4 +赌资:4 +毒资:4 +杜梓:4
+杜字:4 +肚仔:4 +度:2 +读:2 +都:2 +独:2 +毒:2 +杜:2
+渡:2 +赌:2
这就是输入“duziele”显示的结果。因此你应该猜到了,想查任意拼音的话,就用这个地址:http://web.pinyin.sogou.com/web_ime/get_ajax/想查的拼音.key
当然你可能没有Python,那么浏览器总有吧,于是用JavaScript也能搞定。
在地址栏输入下面的代码并回车:
javascript:alert(decodeURIComponent("%E8%82%9A%E5%AD%90%E9%A5%BF%E4%BA%86%EF%BC%9A7%09+%E8%82%9A%E
5%AD%90%E9%A5%BF%EF%BC%9A5%09+%E8%82%9A%E5%AD%90%EF%BC%9A4%09+%E7%8B%AC%E8%87%AA
%EF%BC%9A4%09+%E7%8B%AC%E8%B5%84%EF%BC%9A4%09+%E7%8B%AC%E5%AD%90%EF%BC%9A4%09+%E
7%8A%8A%E5%AD%90%EF%BC%9A4%09+%E8%B5%8C%E8%B5%84%EF%BC%9A4%09+%E6%AF%92%E8%B5%84
%EF%BC%9A4%09+%E6%9D%9C%E6%A2%93%EF%BC%9A4%09+%E6%9D%9C%E5%AD%97%EF%BC%9A4%09+%E
8%82%9A%E4%BB%94%EF%BC%9A4%09+%E5%BA%A6%EF%BC%9A2%09+%E8%AF%BB%EF%BC%9A2%09+%E9%
83%BD%EF%BC%9A2%09+%E7%8B%AC%EF%BC%9A2%09+%E6%AF%92%EF%BC%9A2%09+%E6%9D%9C%EF%BC
%9A2%09+%E6%B8%A1%EF%BC%9A2%09+%E8%B5%8C%EF%BC%9A2"))
虽然该API似乎没有查referer、cookie等字段(可能是出于效率考虑),但由于不是JSNOP格式的,没法直接用AJAX调用,所以最方便的方法是使用YQL,将其转换成JSONP,只是这样速度会慢很多。
我就懒得去做个山寨输入法了,感兴趣的可以自己去试试~
0条评论 你不来一发么↓