From 94a0e11a45720877a8c23bd2575636a49d07991d Mon Sep 17 00:00:00 2001 From: obskyr Date: Thu, 15 Oct 2015 15:54:40 +0200 Subject: [PATCH] Added snippet for handling rate limit using cursors. --- docs/code_snippet.rst | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/code_snippet.rst b/docs/code_snippet.rst index 3c27d19..aed7d7c 100644 --- a/docs/code_snippet.rst +++ b/docs/code_snippet.rst @@ -51,3 +51,29 @@ This snippet will follow every follower of the authenticated user. for follower in tweepy.Cursor(api.followers).items(): follower.follow() + +Handling the rate limit using cursors +===================================== + +Since cursors raise ``RateLimitError``\ s in their ``next()`` method, +handling them can be done by wrapping the cursor in an iterator. + +Running this snippet will print all users you follow that themselves follow +less than 300 people total - to exclude obvious spambots, for example - and +will wait for 15 minutes each time it hits the rate limit. + +.. code-block :: python + + # In this example, the handler is time.sleep(15 * 60), + # but you can of course handle it in any way you want. + + def limit_handled(cursor): + while True: + try: + yield cursor.next() + except tweepy.RateLimitError: + time.sleep(15 * 60) + + for follower in limit_handled(tweepy.Cursor(api.followers).items()): + if follower.friends_count < 300: + print follower.screen_name -- 2.25.1