使用脚本语言解析AJAX API的输出相对容易:
#!/usr/bin/env python
import urllib
import json
base = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&'
query = urllib.urlencode({'q' : "something"})
response = urllib.urlopen(base + query).read()
data = json.loads(response)
print data['responseData']['results'][0]['url']
Run Code Online (Sandbox Code Playgroud)
但有没有更好的方法来做类似的基本shell脚本?如果你只是卷曲了API页面,你应该如何编码URL参数或解析JSON?
我最终使用curl的--data-urlencode选项对查询参数进行编码,然后使用sed来提取第一个结果.
curl -s --get --data-urlencode "q=example" http://ajax.googleapis.com/ajax/services/search/web?v=1.0 | sed 's/"unescapedUrl":"\([^"]*\).*/\1/;s/.*GwebSearch",//'
很多年后,你可以安装googler
googler -n 1 -c in -l en search something here --json
您可以使用 n 标志控制输出页数。
要仅获取 url,只需将其通过管道传输到:
grep "\"url\""|tr -s ' ' |cut -d ' ' -f3|tr -d "\""
Run Code Online (Sandbox Code Playgroud)