我是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个结果,如何获得更多搜索结果。 还有其他的工作吗?
答案 0 :(得分:1)
您应该使用max_id
值来迭代结果。
向Twitter API
发出第一个请求,从结果中读取max_id
并在下一个请求中发送。
来自docs
:
要正确使用max_id,应用程序对时间轴端点的第一个请求应仅指定计数。处理此响应和后续响应时,请跟踪收到的最低ID。此ID应作为下一个请求的max_id参数的值传递,该参数仅返回ID小于或等于max_id参数值的推文。请注意,由于max_id参数是包含的,因此实际将再次返回具有匹配ID的推文,如下图所示:
使用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)