雅虎管道似乎是用JSON表示的。我想下载这些JSON对象用于一些研究目的。通常,雅虎管道在浏览器编辑器中通过如下url呈现:http://pipes.yahoo.com/pipes/pipe.edit?_id=XgRo96h13BGtJWvS8SvLAg,但是您无法将相应的JSON对象获取到此Yahoo管道。有人知道如何获得代表雅虎管道的JSON对象并以任何持久形式存储它们吗?
使用以下形式的URL可以获得Yahoo Pipe的JSON描述:
http://pipes.yahoo.com/pipes/pipe.info?_out=json&_id=PIPE_ID
pipe2py-python库演示了如何获取管道的JSON描述,并将其"编译"为可以在您自己的服务器上运行的python等价物。
"导出Yahoo管道定义,将其编译为Python,并在Scraperwiki中运行它们"一文描述了如何在Scraperviki环境中使用pipe2py,使用直接从Yahoo管道导入的管道定义,或从Yahoo管道导出的管道定义在Scraperbiki上编译和执行管道,然后将其本地存储在Scraperwiki数据库表中。
当我在浏览器中加载该页面时,我可以看到它对以下内容发出ajax请求:http://pipes.yahoo.com/pipes/ajax.pipe.load?id=XgRo96h13BGtJWvS8SvLAg&_out=json&modinfo=true&rnd=7560;。crumb=MjvGjpzhPLl
这是你的目的,但我不确定我是否在回答你关于如何";明白了";。如果你需要通过一个程序获得它,你需要一个登录到管道并提取url的脚本。
虽然不是自动化的,但一种快速的方法是使用HTTP分析器。下面是一个使用HttpFox(我使用的是v0.8.9)为Firefox获取对象的过程。在分析器运行的情况下,加载管道的编辑页面,如您链接的页面:
http://pipes.yahoo.com/pipes/pipe.edit?_id=XgRo96h13BGtJWvS8SvLAg
查看URL以开头的请求
http://pipes.yahoo.com/pipes/ajax.pipe.load?id=....
接下来,探索请求的内容(HttpFox中有一个"内容"选项卡)。这是表示管道结构的JSON对象。
使用pipe.run?[你的管道id在这里]&_render=json,而不是pipe.edit
因此,在您获得json的情况下,它将是-http://pipes.yahoo.com/pipes/pipe.run?_id=XgRo96h13BGtJWvS8SvLAg&_render=json
我想你如何实现客户端取决于你喜欢写什么/你需要什么其他功能。
您也可以用另一种方式,使用web服务模块将数据发布到一个脚本中,该脚本可以提取json并将其持久化到数据库中。您可以查看json.org/