嘿,我需要一个简单的例子来完成以下任务:
向YQL发送查询并收到回复
我从我的Django应用程序的python后端访问公共数据。
如果我只是从YQL复制/粘贴示例,则会显示“请提供有效凭据” 我想,我需要OAuth授权才能做到这一点 所以我得到了一个API密钥和一个共享秘密。
现在,我该怎么办呢?
我应该使用python oauth库吗?这一个?
http://oauth.googlecode.com/svn/code/python/oauth/
但是代码是什么?我如何将我的秘密/ API密钥与我的yql查询一起传递?
我想,许多Django程序员都很想知道这一点。
答案 0 :(得分:3)
我刚刚在pypi上发布了python-yql。它可以做公开的,两条腿的oauth a.k.a签署的请求,也可以为三条腿提供帮助。
这是全新的,所以在我努力提高测试覆盖率的同时可能会有一些错误,但应该有希望做你需要的。请参阅消息来源,了解如何使用它。
安装尝试如下:
sudo easy_install yql
错误/功能请求可以在此处归档:https://bugs.launchpad.net/python-yql
答案 1 :(得分:2)
如果您只是访问公共数据,您可以直接从python进行休息。
>>> 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'
答案 2 :(得分:0)
好的,我解决了这个问题 在数据/ html的YQL控制台示例中,以下网址作为示例提供:
http://query.yahooapis.com/v1/yql?q=select+ * + +从HTML +其中+ URL%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3FS%3Dyhoo%22 +和%0A ++ ++++的xpath%3D%27%2F%2Fdiv%5B%40id%3D%22yfi_headlines%22%5D%2Fdiv%5B2%5D%2Ful%2Fli%2FA%27
不起作用!
但是如果你在“v1 /”之后插入“/ public”而不是神奇地开始工作!
http://query.yahooapis.com/v1/public/yql?q=select+ * + +从HTML +其中+ URL%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3FS%3Dyhoo%22 +和%0A ++ ++++的xpath%3D%27%2F%2Fdiv%5B%40id%3D%22yfi_headlines%22%5D%2Fdiv%5B2%5D%2Ful%2Fli%2FA%27
但是如何传递我的API密钥(用于v1 / yql访问)的问题仍然存在。有什么建议吗?