您的搜索结果会重叠,因为 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”来调整它以具有不重叠的推文。