如何在没有OAuth身份验证的情况下抓取Twitter推文信息?

时间:2010-12-22 11:12:48

标签: twitter web-crawler

我需要抓取Twitter并分析推文以获取信息。我认为最好的方法是使用搜索API,但现在似乎api需要OAuth身份验证。注册成为开发人员是唯一的方法吗?还有其他选择吗?

5 个答案:

答案 0 :(得分:14)

亚当·格林的(选择)答案不再适用,因为Twitter关闭了他们的 REST API v1.0。

如果您调用给定的示例来查询披萨:

http://search.twitter.com/search.json?q=pizza

您收到以下错误消息:(虽然在json中;)

{"errors": 
   [{"message": "The Twitter REST API v1 is no longer active. 
      Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview",
     "code": 64}
   ]
}

You can check the API 1.1 search spec here

从1.0到1.1的另一个变化是所有1.1 API调用都需要身份验证 包括搜索。

答案 1 :(得分:4)

这里有很多错误的信息。你没有屏幕刮。您无需注册应用程序即可执行此操作。 Twitter中没有API密钥。您无需使用任何授权即可从搜索API中读取数据。 API的其余部分需要OAuth,但不需要搜索。

要使用搜索API,您只需针对以下网址发出请求: http://search.twitter.com/search.json?q=[keywords]

例如搜索披萨: http://search.twitter.com/search.json?q=pizza

您可以获得可以在任何程序中阅读的JSON数据。如果使用PHP,则可以使用cURL发出请求,使用json_decode()将结果转换为可以在foreach()循环中迭代的对象。

答案 2 :(得分:2)

如果您想分析大量推文,您应该使用Streaming API。您需要注册才能访问此内容。

您也可以使用不需要注册的Search API。但这是速度有限的。

答案 3 :(得分:1)

您可以尝试PythoncURL

答案 4 :(得分:0)

它很脏*,但您可以使用PHP DOM以重复的间隔刮取Twitter的主页。

* twitters搜索API并不复杂,因此我猜您愿意使用快速入侵