1

我有一个脚本可以根据存储在 xml 中的 id 来收集 twitter 数据,但它不会获取所有内容。一段时间后,它只会收到空消息。从 2000 个 ID,我设法保存了 200 条推文。知道如何解决这个问题吗?

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() 
4

1 回答 1

1

Twitter API 有严格的 API 限制。他们限制他们的 API。如果您经常访问他们的 API,那么他们很可能会永久或在固定时间段内停止向您提供内容。要了解究竟是什么限制,请查看API 速率限制速率限制

Twitter 自己也承认,他们必须处理其正常 API 的数据量约占实际传入数据的 1%。如果您想要特定 API 类型的整个数据集,那么您需要访问他们的 Twitter Firehouse API .

于 2013-05-22T11:53:51.540 回答