使用Python抓取Twitter数据的最快方式 - 追随者的追随者

时间:2015-11-03 21:24:24

标签: python twitter web-crawler social-networking tweepy

我正在用Twitter在Twitter上研究用户社交关系。

问题在于“抓取特定用户关注者信息的关注者的最快方式是什么” 我搜索了很多信息,目前正在使用Tweepy:

c = tweepy.Cursor(api.followers_ids, id=centre, count=5000).items()
    while True:
        try:
            followers_ids_list.append(c.next())
        except tweepy.TweepError:
            # hit rate limit, sleep for 15 minutes
            time.sleep(15 * 60 + 15)
            continue

之后我使用/ users / lookup根据之前获得的ID找到User()对象。

然而,这种方式很慢......我想知道是否有比我目前所做的更快的事情。

因为我想找到用户关系,这意味着深度2的关注者是不够的。

说,我有100名粉丝,而这100名粉丝拥有自己的200名粉丝,那么抓住这个社交网络所需的时间(深度= 3)将是:

(1 + 100 + 100 * 200)/ 15calls * 15mins / 60mins = 335小时=约14天!

  • 1次致电:请求我的粉丝(100ids)

  • 100个电话:请求100个关注者的关注者ID(100 * 200ids)

  • 100 * 200个电话(至少):请求100 * 200(粉丝的关注者)用户的ID。

我能想到的另一种选择就是在没有api的情况下抓取twitter.com网站(但是,我想,这样会使我的IP或帐户被Twitter禁止......)

2 个答案:

答案 0 :(得分:0)

API限制会阻止您加快速度。

您可以设置多个应用并通过它们分发问题 - 但如果这些应用都是从同一个IP地址运行,则可能会被Twitter注意到。

答案 1 :(得分:0)

由于15分钟的时间费率,你永远无法使用Twitter API。

我也在做一些与作者的追随者有关的工作。但是,我需要数百万粉丝的名字,这更糟糕。

我的解决方案是编写自己的抓取工具,它的工作速度比API快。它每晚可以爬100 * 1000。 (我在我的本地机器上测试)这个速度低于我的预期,所以我必须考虑其他方法来提高速度。 希望这可以给你一些灵感。