如何在Python(Django)中访问YQL?

如何在Python(Django)中访问YQL?,python,django,api,oauth,yql,Python,Django,Api,Oauth,Yql,嘿,我需要一个简单的例子来完成以下任务: 向YQL发送查询并接收响应 我正在从Django应用程序的python后端访问公共数据 如果我只是从YQL复制/粘贴一个示例,它会说“请提供有效的凭据”。 我想,我需要OAuth授权来做这件事。 所以我得到了一个API密钥和一个共享秘密 现在,我该怎么处理它们呢? 我应该使用python oauth库吗?这个? 但代码是什么?我如何将我的密钥/API密钥与yql查询一起传递 我想,很多Django程序员都很想知道这一点。好的,我解决了这个问题。 在数据

嘿,我需要一个简单的例子来完成以下任务:
向YQL发送查询并接收响应
我正在从Django应用程序的python后端访问公共数据

如果我只是从YQL复制/粘贴一个示例,它会说“请提供有效的凭据”。
我想,我需要OAuth授权来做这件事。
所以我得到了一个API密钥和一个共享秘密

现在,我该怎么处理它们呢?
我应该使用python oauth库吗?这个?

但代码是什么?我如何将我的密钥/API密钥与yql查询一起传递


我想,很多Django程序员都很想知道这一点。

好的,我解决了这个问题。
在数据/html的YQL控制台示例中,以以下url为例:

*+from+html+where+url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3Dyhoo%22+和%0A+xpath%3D%27%2F%2Fdiv%5B%40id%3D%22yfi_标题%22%5D%2Fdiv%5B2%5D%2Fli%2Fa%27

它不起作用
但如果在“v1/”之后插入“/public”,它就会神奇地开始工作

*+from+html+where+url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3Dyhoo%22+和%0A+xpath%3D%27%2F%2Fdiv%5B%40id%3D%22yfi_标题%22%5D%2Fdiv%5B2%5D%2Fli%2Fa%27


但是如何传递API密钥(用于v1/yql访问)的问题仍然没有解决。有什么建议吗?

好的,我差不多解决了这个问题。
在数据/html的YQL控制台示例中,以以下url为例:

*+from+html+where+url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3Dyhoo%22+和%0A+xpath%3D%27%2F%2Fdiv%5B%40id%3D%22yfi_标题%22%5D%2Fdiv%5B2%5D%2Fli%2Fa%27

它不起作用
但如果在“v1/”之后插入“/public”,它就会神奇地开始工作

*+from+html+where+url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3Dyhoo%22+和%0A+xpath%3D%27%2F%2Fdiv%5B%40id%3D%22yfi_标题%22%5D%2Fdiv%5B2%5D%2Fli%2Fa%27


但是如何传递API密钥(用于v1/yql访问)的问题仍然没有解决。有什么建议吗?

如果您只访问公共数据,您可以直接从python调用rest

>>> import urllib2
>>> result = urllib2.urlopen("http://query.yahooapis.com/v1/public/yql?q=select%20title%2Cabstract%20from%20search.web%20where%20query%3D%22paul%20tarjan%22&format=json").read()
>>> print result[:100]
{"query":{"count":"10","created":"2009-11-03T04:47:01Z","lang":"en-US","updated":"2009-11-03T04:47:0
然后可以使用simplejson解析结果

>>> import simplejson
>>> data = simplejson.loads(result)
>>> data['query']['results']['result'][0]['title']
u'<b>Paul</b> <b>Tarjan</b> - Silicon Valley, CA | Facebook'
导入simplejson >>>数据=simplejson.loads(结果) >>>数据['query']['results']['result'][0]['title'] u'Paul Tarjan-加利福尼亚州硅谷| Facebook'
如果您只访问公共数据,您可以直接从python调用rest

>>> import urllib2
>>> result = urllib2.urlopen("http://query.yahooapis.com/v1/public/yql?q=select%20title%2Cabstract%20from%20search.web%20where%20query%3D%22paul%20tarjan%22&format=json").read()
>>> print result[:100]
{"query":{"count":"10","created":"2009-11-03T04:47:01Z","lang":"en-US","updated":"2009-11-03T04:47:0
然后可以使用simplejson解析结果

>>> import simplejson
>>> data = simplejson.loads(result)
>>> data['query']['results']['result'][0]['title']
u'<b>Paul</b> <b>Tarjan</b> - Silicon Valley, CA | Facebook'
导入simplejson >>>数据=simplejson.loads(结果) >>>数据['query']['results']['result'][0]['title'] u'Paul Tarjan-加利福尼亚州硅谷| Facebook' 我刚刚发布的pypi上也有。它可以执行公开的、两条腿的oauth a.k.a签名请求,也可以促进三条腿的outh

它是全新的,所以在我努力提高测试覆盖率的时候可能会有一些bug,但我希望它能满足您的需要。有关如何使用它的一些想法,请参阅源代码

请按以下步骤安装以尝试:

sudo easy_install yql
错误/功能请求可以在这里提交:

我刚刚发布的pypi上也有。它可以执行公开的、两条腿的oauth a.k.a签名请求,也可以促进三条腿的outh

它是全新的,所以在我努力提高测试覆盖率的时候可能会有一些bug,但我希望它能满足您的需要。有关如何使用它的一些想法,请参阅源代码

请按以下步骤安装以尝试:

sudo easy_install yql

错误/功能请求可以在此处存档:

也许我只需要一些http请求的身份验证头?只是为了确保:我正在访问公共数据,因此不需要用户批准。也许我只需要一些http请求的身份验证头?只是为了确保:我正在访问公共数据,因此不需要用户的批准。您是否找到了将apikey传入/v1/yql请求的方法?我也遇到了同样的问题。。。干杯您是否找到了为/v1/yql请求传递apikey的方法?我也遇到了同样的问题。。。干杯