2013-05-13 3 views
3

Я новичок в python Twitter API. Я настроил auth с твиттером, и я попробовал поиск, который отлично работает.Сложность с Twitter API Поиск

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"}]} 

Я смотрел на твиттере, и кажется, что параметр страницы в порядке в качестве необязательного параметра: https://dev.twitter.com/docs/api/1/get/search ,

В качестве альтернативы, как получить больше результатов поиска, если скорость ограничена 100 результатами за запрос. Есть ли еще работа вокруг?

ответ

0

Вы должны использовать значение max_id для повторения результатов. Сделайте первый запрос на адрес Twitter API, введите max_id и отправьте его в следующий запрос.

От docs:

To use max_id correctly, an application’s first request to a timeline endpoint should only specify a count. When processing this and subsequent responses, keep track of the lowest ID received. This ID should be passed as the value of the max_id parameter for the next request, which will only return Tweets with IDs lower than or equal to the value of the max_id parameter. Note that since the max_id parameter is inclusive, the Tweet with the matching ID will actually be returned again, as shown in the following image:

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) 
Смежные вопросы