抓取Twitter用户和关注者数据

时间:2013-07-10 21:46:09

标签: twitter web-crawler social-networking twitter4j

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

我想构建一个用户关注者列表。基本上我想创建另一个有两列的表 - 1)用户ID(我拥有的用户的ID) 2)跟随者ID(ids,以分号分隔 - 该用户的所有粉丝)

例如:如果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)

我试图使用Crawleer4j - 一个抓取Twitter页面的网络抓取工具,但由于Twitter增加了他们的安全性 - 这也是不可能的。

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

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

请帮忙!

1 个答案:

答案 0 :(得分:3)

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

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个半天。

40,000,000(粉丝)/ 5,000(通话中记录的记录)/ 15(15分钟内最多休息时间)/ 4(1小时内15分钟)= 133小时