抓取 Twitter 用户和关注者数据

Posted

技术标签:

【中文标题】抓取 Twitter 用户和关注者数据【英文标题】:Crawl Twitter Users and Followers Data 【发布时间】:2013-07-10 21:46:08 【问题描述】:

我有一个庞大的 twitter 用户数据库(大约 600 万)。我有用户 ID、登录句柄、他们最近的推文、联系方式、位置等。

我想用这些建立一个用户关注者列表。基本上我想创建另一个有两列的表 - 1)用户ID(我拥有的用户的ID) 2)Follower-ID(这个用户的所有follower的id,用分号隔开)

例如:如果 id 为 001 的用户被 id 为 002,003 的用户关注,则记录将如下所示 -

用户 ID - 001 追随者 ID - 002;003

我希望最好使用 Java 来实现这一点,但我也对其他语言持开放态度。

我尝试使用 twitter4j - 一个获取推文、用户等的 Java 库 - 但它对每天的 API 调用次数有限制。 使用 twitter SEARCH OR REST API 是不可能的,因为它没有给我特定用户的追随者的 ID。

我的教授建议我的另一种方法 - 抓取 Twitter 的网页。 例如 - 如果用户句柄是 xxx,那么我需要抓取以下链接 -

https://twitter.com/xxx/followers

获取此网页并解析 html 以获取关注者 ID。我使用 Firebug 检查了网页,我可以看到所有关注者的 ID!

这里的问题是 - 我如何为我拥有的 600 万用户做到这一点? (我有句柄,所以只需要爬上面提到的链接,把xxx换成next句柄)

我尝试使用 Crawleer4j - 一个网络爬虫来爬取 Twitter 页面,但由于 Twitter 提高了它们的安全性 - 这也是不可能的。

我该怎么做?请帮忙 - 我这样做是我研究项目的一部分,我真的被困在这里了。

我想找到一种方法来抓取 Twitter 网页以获取所需的信息。

请帮忙!

【问题讨论】:

“Twitter 已经提高了他们的安全性”,特别是因为他们不希望你这样做......如果你可以将这些数据有效地用于研究项目,为什么不尝试联系他们并直接要求? (如果不出意外,您可能会受到速率限制的影响 - 以每秒 1 个用户的速度,需要两个半月才能获得 600 万用户的数据......) 【参考方案1】:

我将从下面的链接开始。它可以完成,但需要相当长的时间。

https://dev.twitter.com/docs/api/1.1/get/followers/ids

https://dev.twitter.com/docs/api/1.1/get/friends/ids

考虑到 Justin Beiber 有 40,000,000 名追随者,因此使用一个令牌拉动需要 5 1/2 天。

40,000,000(关注者)/5,000(通话中返回的记录)/15(15 分钟内最多休息通话)/4(1 小时内间隔 15 分钟)= 133 小时

【讨论】:

我正在做类似的事情。你有没有想通这个或找到一个解决方案,很想一起工作。我肯定会出于不同的原因使用它,并且没有任何非法或不良行为。我希望找到暂停的合法帐户以及 youtube 和 FB。

以上是关于抓取 Twitter 用户和关注者数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Tweepy 获取 Twitter 生物信息

如何为用户实现关注者,如在 twitter 中

从 twitter 获取关注者是不是有任何限制

Twitter数据非API采集方法

使用 Tweepy 从用户 Twitter 关注者那里获取用户 ID 列表

如何在不达到 API 限制的情况下获得所有 Twitter 关注者