4

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

我想从这些中建立一个用户关注者列表。基本上我想创建另一个包含两列的表 - 1)用户 ID(我拥有的用户的 ID)2)追随者 ID(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替换为下一个句柄)

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

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

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

请帮忙 !

4

1 回答 1

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 1/2 天。

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

于 2013-07-11T02:57:46.680 回答