2013-05-22 98 views
1

我有一個腳本根據id存儲在xml中的twitter數據收集,但它不會獲取所有內容。一段時間之後,它只會收到空信息。從2000年ids我設法保存~200推文。任何想法如何解決這個問題?收集twitter數據

import xml.etree.ElementTree as xml 
import urllib2 
import sys 

startIter = int(sys.argv[1]) 
stopIter = int(sys.argv[2]) 

#Open file to write JSON to 
jsonFile = open('jSONfile', 'a') 
#Parse XML directly from the file path 
tree = xml.parse("twitter.xml") 

#Get the root node 
rootElement = tree.getroot() 

#Loop through nodes in root 
iterator = 1 
for node in rootElement: 
    if iterator >= startIter and iterator <= stopIter: 
     print iterator 
     print node[0].text 
     nodeID = node[0].text 
     try: 
      tweet = urllib2.urlopen('https://api.twitter.com/1/statuses/show.json?id={0}&include_entities=true'.format(nodeID)) 
      tweetData = tweet.read() 
      print tweetData 
      jsonFile.write('{0}\n'.format(tweetData).',') 
     except: 
      pass 
    iterator = iterator + 1 
jsonFile.close() 

回答

0

Twitter的API有嚴格的API限制。他們扼殺了他們的API。如果您經常碰到他們的API,他們很可能會永久或永久停止向您提供內容。想知道究竟是什麼限制檢查1.0 API Rate Limit

Twitter也自己承認,他們必須處理他們的正常API服務的數據量約爲實際數據的1%。如果你想要整個數據集爲您的特定API類型,那麼你需要訪問他們的Twitter Firehouse API's。請注意,您將受到一些嚴重數據的轟炸。

+0

謝謝你!我現在通過API閱讀並發現了這些限制。我不知道如何收集視覺分析競爭的數據:) – mjanisz1

+0

試圖遏制你的API調用,並不斷積累數據。在一兩天內,你應該有足夠的數據。並請接受我的答案,如果它以任何方式幫助你... –

+0

我剛剛從2個月前的推文ids - 具體到我應該分析的給定的電影。不知道如何收集他們所有的人!謝謝! – mjanisz1