如何在Python中使用Twitter API更快地收集推文?

时间:2010-11-22 20:02:28

标签: python twitter python-twitter

对于一个研究项目,我正在使用Python-Twitter收集推文。但是,当我们的程序在一台计算机上不间断运行一周时,我们每周只能收集大约20 MB的数据。我只在一台机器上运行这个程序,所以我们不会两次收集相同的推文。

我们的程序运行一个循环,每隔60秒调用一次getPublicTimeline()。我尝试通过在公共时间轴中出现的一些用户上调用getUserTimeline()来改进这一点。然而,这始终让我被禁止每次约半小时收集推文。即使没有禁令,通过添加此代码似乎也没有什么加速。

我知道Twitter的“白名单”允许用户每小时提交更多请求。我大约三周前申请了这个,并且从那时起就没有回复,所以我正在寻找替代方案,这将使我们的计划能够更有效地收集推文,而不会超过标准的速率限制。有没有人知道从Twitter收集公共推文的更快方法?我们希望每周大约100 MB。

感谢。

3 个答案:

答案 0 :(得分:5)

如何使用streaming API?这正是它为解决而创建的用例。使用流式传输API,您在收集兆字节的推文时不会遇到任何问题。如果没有被Twitter授予访问权限,您仍然无法访问所有推文甚至是统计上重要的样本。

答案 1 :(得分:1)

我做了一个类似的项目来分析推文中的数据。如果您只是从纯粹的数据收集/分析角度进行此操作,您可以出于各种原因抓取收集这些推文的任何更好的网站。许多网站允许您通过主题标签进行搜索,因此请输入一个足够受欢迎的主题标签,并且您已经获得了数千个结果。我只是将这些网站中的一些用于流行的主题标签,将它们收集到一个大型列表中,查询该网站的列表,并从结果中删除所有可用信息。某些站点还允许您直接导出数据,从而使此任务更加轻松。您将获得许多垃圾结果,您可能需要过滤(垃圾邮件,外语等),但这是对我们项目有效的最快方式。 Twitter可能不会授予您白名单状态,所以我绝对不会指望它。

答案 2 :(得分:1)

来自ars technica的非常好的tutorial使用流式API和Python可能会对此有所帮助。

否则,您可以通过cURL尝试doing it