2013-07-02 11 views
20

Czy możliwe jest uzyskanie pełnej listy obserwujących konta, które ma więcej niż milion obserwujących, takich jak McDonald's?Wszystkie identyfikatory Follower na Twitterze za pomocą Tweepy

używam Tweepy i wykonaj kod:

c = tweepy.Cursor(api.followers_ids, id = 'McDonalds') 
ids = [] 
for page in c.pages(): 
    ids.append(page) 

ja też spróbować tego:

for id in c.items(): 
    ids.append(id) 

Ale ja zawsze dostał 'Oceń granica przekroczona' błąd i było tylko 5000 Identyfikatory naśladowcą.

Odpowiedz

32

Aby uniknąć limitu stawek, można/należy poczekać przed kolejnym żądaniem strony obserwatora. Wygląda hacky, ale działa:

import time 
import tweepy 

auth = tweepy.OAuthHandler(..., ...) 
auth.set_access_token(..., ...) 

api = tweepy.API(auth) 

ids = [] 
for page in tweepy.Cursor(api.followers_ids, screen_name="McDonalds").pages(): 
    ids.extend(page) 
    time.sleep(60) 

print len(ids) 

Nadzieję, że pomaga.

+1

Działa. Wielkie dzięki. – user1056824

+1

działa, ale nie dla dużej liczby obserwujących. Spróbowałem tego z kontem, który ma 600 000 obserwujących i ciągle otrzymywał komunikaty o błędach, ponieważ "limit przekroczenia stawki" ... jakikolwiek pomysł na obejście tego problemu? – dave

+1

Może nie musisz spać na ostatniej stronie. 'jeśli len (strona) == 5000: time.sleep (60)' – ducu

11

Użyj argumentów ograniczenia szybkości podczas nawiązywania połączenia. Interfejs API będzie samokontroli w ramach limitu stawki.

Przerwa snu nie jest zła, używam tego do symulowania człowieka i rozprzestrzeniania aktywności w określonym przedziale czasowym ze stopą procentową api jako ostateczną kontrolą.

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True) 

również dodać try/except, aby przechwytywać i kontrolować błędy.

przykład kodu https://github.com/aspiringguru/twitterDataAnalyse/blob/master/sample_rate_limit_w_cursor.py

kładę moje klucze w zewnętrznym pliku, aby ułatwić zarządzanie.

https://github.com/aspiringguru/twitterDataAnalyse/blob/master/keys.py

+0

Dobra rada. Dzięki! – petezurich

Powiązane problemy