我有一个庞大的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网页以获取所需信息。
请帮忙!
答案 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小时