来自搜索API的推文是否重叠?

时间:2013-05-06 13:27:29

标签: python twitter python-twitter

我对twitter api很新,并且想知道我是否使用搜索api,我想每分钟调用它,以检索大约1000条推文。如果针对给定标准创建的推文少于1000条,我会得到重复的推文,或者我会更频繁地将其称为每分钟一次

我希望我的问题很明确,以防万一我使用python-twitter库。 我收到推文的方式是:

self.api = twitter.Api(consumer_key, consumer_secret ,access_key, access_secret)
self.api.VerifyCredentials()
self.api.GetSearch(self.hashtag, per_page=100)

1 个答案:

答案 0 :(得分:1)

您的搜索结果会重叠,因为API不知道您之前搜索过的内容。防止重叠的一种方法是使用上次检索到的推文中的推文ID。这是我的代码中的python 2.7片段:

maxid = 10000000000000000000
for i in range(0,10):
    with open('output.json','a') as outfile: 
        time.sleep(5) # don't piss off twitter
        print 'maxid=',maxid,', twitter loop',i
        results = api.GetSearch('search_term', count=100,max_id = maxid)
        for tweet in results:
            tweet = str(tweet).replace('\n',' ').replace('\r',' ') # remove new lines
            tweet = (json.loads(tweet))
            maxid = tweet['id'] # redefine maxid
            json.dump(tweet,outfile)
            outfile.write('\n') #print tweets on new lines

此代码为您提供了自上一个id以来100个推文的10个循环,每次循环都会定义。然后它写一个json文件(每行一条推文)。我使用此代码搜索最近的过去,但您可以通过将'max_id'更改为'since_id'来调整它以获得不重叠的推文。