使用Tweepy将屏幕名称列表转换为用户ID

时间:2017-11-06 18:42:15

标签: python loops twitter exception-handling tweepy

我正在使用Python和Tweepy编写基本程序来获取Twitter屏幕名称列表并下拉相应的用户ID。我已经实现了速率限制器并且程序正常工作但是当它遇到我的异常处理时事情就会崩溃。它告诉我,在等待15分钟后,X中的屏幕名称不存在。我需要异常处理,因为Tweepy在运行时经常遇到问题。我在这做错了什么?

f = open('output2.txt', 'w')
while True:
  for x in HandleList1:
    try:    
        u = api.get_user(id = x)
        print >> f, u.id
    except tweepy.TweepError:
        print "We just hit an error, waiting for 15min and then reconnecting..."
        time.sleep(60*15)
        u = api.get_user(id = x)
        print >> f, u.id
    except StopIteration:
        print "Stopping the iteration and processing the results!"
        break

f.close()

1 个答案:

答案 0 :(得分:1)

我猜TweepError涵盖了多种错误,包括速率限制错误和查询错误。如果您要搜索不再存在的用户名,则可能会收到相同的错误。

查看如何打印您遇到的确切类型的错误: Get the error code from tweepy exception instance

我会在你的除了tweepy.TweepError catch之外添加一个if-else语句,用于检查错误是否是一个ratelimit错误或其他内容,如链接中所述。在后一种情况下,您只需传递(或打印错误和您所做的特定查询)。