我创建了一个流API来捕获帐户中的所有转推。我将所有结果保存在Mongodb中。
这是代码
class StdOutListener(StreamListener):
def on_data(self, data):
mydata = json.loads(data)
db.raw_tweets.insert_one(mydata)
return True
def on_error(self, status):
mydata = json.loads(status)
db.error_tweets.insert_one(mydata)
if __name__ == '__main__':
#This handles Twitter authetification and the connection to Twitter Streaming API
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
#This line filter Twitter Streams to capture data by the keywords: 'python', 'javascript', 'ruby'
stream.filter(follow=['121817564'])
我相信我几乎抓住了所有东西。 Twitter上有一条推文5000k转推的推文,但当我在MongoDb上查询时,我只收到1,300条记录。我不确定我是否遗漏了什么?我不希望获得完全相同的数字,但至少它应该足够接近。
这是我在MongoDB中使用的查询。
db.getCollection('raw_tweets').find({'retweeted_status.id_str':'636345902915911680'}).count()
也许我的查询不正确以获得所有转推?
答案 0 :(得分:1)
您的mongoDB查询对我来说没问题。 现在丢失转推的原因可能有很多: