簡體   English   中英

如何在Python(Django)中訪問YQL?

[英]How to access YQL in Python (Django)?

嘿,我需要一個簡單的示例來完成以下任務:
向YQL發送查詢並收到響應
我正在從Django應用的python后端訪問公共數據。

如果僅從YQL復制/粘貼示例,則顯示“請提供有效的憑據”。
我想,我需要OAuth授權才能執行此操作。
因此,我獲得了一個API密鑰和一個共享機密。

現在,我該怎么辦?
我應該使用python oauth庫嗎? 這個?
http://oauth.googlecode.com/svn/code/python/oauth/

但是代碼是什么? 如何將我的密鑰/ API密鑰與yql查詢一起傳遞?

我猜想,許多Django程序員都希望知道這一點。

我剛剛發布了也可以在pypi上使用的python-yql 它可以處理公開的兩足oauth簽名請求,也可以方便三足使用。

它是全新的,因此在我提高測試覆蓋率時可能會有一些錯誤,但希望可以做您需要的事情。 有關如何使用它的一些想法,請參見源代碼。

安裝嘗試如下:

sudo easy_install yql

錯誤/功能請求可以在此處提交: https : //bugs.launchpad.net/python-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'

好的,我已經解決了這個問題。
在data / html的YQL控制台示例中,以下URL作為示例提供:

http://query.yahooapis.com/v1/yql?q=select+ * + from + html + where + url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3Dyhoo%22 + and %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+ * + 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_headlines%22%5D%2Fdiv%5B2%5D%2Ful%2Fli%2FA%27

但是如何傳遞我的API密鑰(用於v1 / yql訪問)的問題仍然存在。 有什么建議嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM