Twitter API搜索难度大

时间:2013-05-13 03:34:27

标签: python twitter

我是python Twitter API的新手 我用twitter设置了auth,我尝试了搜索工作正常。

t = twitter.Twitter(auth=auth)    
tt = t.search.tweets(q="stackoverflow",rpp=50)

这很好用,我可以阅读输出。

但如果我尝试:

for page in range(1,6):
    tt = t.search.tweets(q="stackoverflow", rpp=100, page=page)

这与错误崩溃:

details: {"errors":[{"code":44,"message":"page parameter is invalid"}]}

我查看了Twitter页面,似乎页面参数可以作为可选参数:https://dev.twitter.com/docs/api/1/get/search

或者,如果每个请求的费率限制为100个结果,如何获得更多搜索结果。 还有其他的工作吗?

1 个答案:

答案 0 :(得分:1)

您应该使用max_id值来迭代结果。 向Twitter API发出第一个请求,从结果中读取max_id并在下一个请求中发送。

来自docs

  

要正确使用max_id,应用程序对时间轴端点的第一个请求应仅指定计数。处理此响应和后续响应时,请跟踪收到的最低ID。此ID应作为下一个请求的max_id参数的值传递,该参数仅返回ID小于或等于max_id参数值的推文。请注意,由于max_id参数是包含的,因此实际将再次返回具有匹配ID的推文,如下图所示:

enter image description here

使用Twython

from twython import Twython

twitter = Twython(APP_KEY, access_token=ACCESS_TOKEN)

# Initial request
result = twitter.search(q='stackoverflow', count=100)

# Get max_id of results
next_max_id = result['search_metadata']['next_results'].split('max_id=')[1].split('&')[0]
# Use max_id in next request 
result = twitter.search(q='stackoverflow', count=100, max_id=next_max_id)