抓取 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 用户和关注者数据的主要内容,如果未能解决你的问题,请参考以下文章