【问题标题】:How to Collect Tweets More Quickly Using Twitter API in Python?如何在 Python 中使用 Twitter API 更快地收集推文?
【发布时间】:2011-05-14 01:49:56
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 旧帖子,但对于在这里绊倒的人:getPublicTimeline() 不在当前的 Twitter API 或 python-twitter 代码中,但它可能获取已通过身份验证的用户的时间线 - 我的猜想这就是推文数量少的原因。我不认为您可以使用 REST API 进行开放式查询,但使用流式 API 您可以(我认为提供了 0.1% 的 firehose - 几天内可以获得大量数据)

标签: python twitter python-twitter


【解决方案1】:

使用streaming API 怎么样?这正是它被创建来解决的用例。使用流 API 收集数兆字节的推文不会有任何问题。但是,如果没有 Twitter 的访问权限,您仍然无法访问所有推文,甚至无法访问具有统计意义的样本。

【讨论】:

【解决方案2】:

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

【讨论】:

  • 您能否指点此类网站的好例子?
【解决方案3】:

ars technica 的 tutorial 很好地介绍了如何使用流式 API n Python,这在这里可能会有所帮助。

否则你可以通过cURL尝试doing it

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 2018-02-12
    • 2016-07-22
    相关资源
    最近更新 更多