2013-12-08 82 views
0

我曾經遇到過與T中的TwitteR軟件包有很大不一致的行爲。我按以下方式進行了查詢,每個查詢都在15分鐘內符合REST API 1.1的速率限制功能。前三項工作。第四次失敗。反覆。R TwitteR和速率限制問題

monsanto.tweets = searchTwitter('@monsanto', n = 1500); 
monsanto.tweets.20131207 = searchTwitter('@monsanto', n = 6000, until = '2013-12-07'); 
monsanto.tweets.20131205 = searchTwitter('@monsanto', n = 6000, until = '2013-12-05'); 
monsanto.tweets.20131202 = searchTwitter('@monsanto', n = 6000, until = '2013-12-02'); 

錯誤是: [1] 「客戶端錯誤(429)」 錯誤twInterfaceObj $ doAPICall(CMD,則params, 「GET」,...): 錯誤:客戶端錯誤(429)

那是怎麼回事?我嘗試過用數字進行實驗,將其逐步降低到1000步,達到1000步。沒有成功。我也試過這個主題的變化。

monsanto.tweets.20131202 = searchTwitter('@monsanto', 
    since = '2013-12-02', until = '2013-12-02', lang = 'en'); 
monsanto.tweets.20131130 = searchTwitter('@monsanto', 
    n = 1000, until = '2013-11-30'); 

這些都不起作用。在引擎蓋下,'searchTwitter'的每個實例可能會向REST API 1.1生成多個GET請求。根據文檔,單個GET請求會返回多達100條推文,默認爲25.完成對6000條推文的請求時,最多需要60個請求,並且默認設置需要240個請求。在15分鐘窗口內兩者都在480 /應用程序的許可限制內。

什麼給?

PS - 我使用OAuth。我開始認爲我更好地將自己的接口滾動到REST API 1.1並解析JSON。

回答

1

我不使用'R',但是我從一個非常好的python twitter庫中獲得的經驗建議是,對於高級用例,使用任何標準OAuth庫可以更好地使用自己的接口。 您必須建立良好的錯誤處理和重新獲取邏輯,因爲短暫的失敗比比皆是,在這個規模的twitter或任何服務。

twitter的默認計數似乎是15,R庫是否使用25作爲默認計數?有沒有可以用來把它撞到100的配置?

+0

Vishal,謝謝。 R Twitter界面的默認計數爲25.該界面允許更大的計數,就編號而言。它一口氣提取的推文。我不確定它在底層做了什麼。我的猜測是,使用Twitter的REST API v1.1許可證的最大容量並迭代多個請求。目前這個限制是65。 –