2015-02-01 2 views
-2

Я знаю, что API поиска в Twitter имеет свои собственные ограничения и возвращает гораздо меньше результатов поиска, чем фактические результаты, но я искал популярный хэштег, и он возвращает только 60 результатов, что неприемлемо вообще!Twitter-предел никогда не был таким строгим

вот мой код, в котором я использовал twython модуль.

results = {} 
last_id = None 
count = 0 
while(len(results.keys()) != min_count): 
    if(last_id): 
     tmp_results = self.api.search(q="#mentionsomeoneimportantforyou", count=100, max_id=last_id) 
    else: 
     tmp_results = self.api.search(q=#mentionsomeoneimportantforyou, count=100) 
    count += len(tmp_results['statuses']) 
    print("new len: ", count) 
    last_id = get_max_id(tmp_results) 


def get_max_id(results): 
    next_results_url_params = results['search_metadata']['next_results'] 
    next_max_id = next_results_url_params.split('max_id=')[1].split('&')[0] 
    return next_max_id 

Есть ли что-нибудь с этим кодом? Это не так, разве не 60 из многих шуток?

ответ

0

twython docs предлагаю не делать это таким образом, с помощью курсора подход вместо:

twitter = Twython(APP_KEY, APP_SECRET, 
        OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 

results = twitter.cursor(twitter.search, q='python') 
count = 0 
for result in results: 
    print result['id_str'] 
    count += 1 
print count 

печатает:

... many here ... 
561918886380322816 
561918859050229761 
561919180480737282 
561919151162130434 
561919142450581504 
561919113812246529 
561919107134922753 
561919103867559938 
561919077481218049 
561918994454556672 
561918971755372546 
561918962381127680 
561918948288258048 
561918911751655425 
561918904126042112 
561918886380322816 
561918859050229761 
645 
+0

Нет, тест q = '# mentionsomeoneimportantforyou', и он снова возвращает только 60 из многих. – Pooya

0

Я думаю, что я нашел причину. Согласно this link Twitter не возвращает твиты старше недели через поиск api.

Смежные вопросы