【发布时间】:2016-02-04 05:00:06
【问题描述】:
我正在用 Python 研究 Twitter 中的用户社交关系。
问题是“抓取某个用户的关注者信息的关注者最快的方法是什么” 查了很多资料,目前正在使用Tweepy:
c = tweepy.Cursor(api.followers_ids, id=centre, count=5000).items()
while True:
try:
followers_ids_list.append(c.next())
except tweepy.TweepError:
# hit rate limit, sleep for 15 minutes
time.sleep(15 * 60 + 15)
continue
然后我使用 /users/lookup 根据之前获得的那些 id 来查找 User() 对象。
但是,这种方式很慢...我想知道是否有比我目前正在做的更快的方式。
因为我要查找用户关系,也就是说深度2的关注者是不够的。
假设我有 100 个粉丝,这 100 个粉丝有自己的 200 个粉丝,那么抓取这个社交网络(深度=3)所需的时间是:
(1 + 100 + 100*200)/15 次通话 * 15 分钟 / 60 分钟 = 335 小时 = 大约 14 天!
1 次调用:请求我的关注者 ID (100ids)
100调用:请求100个follower的follower id (100*200ids)
100*200 次调用(至少):请求 100*200(followers'followers) 用户 id。
我可以考虑的替代方法是在没有 api 的情况下抓取 twitter.com 网站(但是,我认为,这种方式会使我的 IP 或帐户被 Twitter 禁止......)
【问题讨论】:
标签: python twitter web-crawler social-networking tweepy