Twitter API与Web抓取?
首先,我想让我的Twitter帐户的所有追随者。我做了一些研究,发现我们可以使用Ruby on Rails进行网页抓取:Nokogiri或Mechanize gems。我也有一个CSS选择器用于网页抓取。现在,如果我查看,HTML页面源不会显示帐户的所有追随者。Twitter API与Web抓取?
我真的可以使用网页抓取代码来获取我所有的Twitter追随者吗?或者我应该使用Twitter API吗?
一般而言,尽可能绝对使用API。顾名思义,“刮”你只是处理应用程序的“表面”,用MVC术语来说就是它的(HTML)视图。这些观点可以在任何时候改变 - 请考虑Twitter和其他类似服务进行网站重新设计的次数。如果你在拼抢,那么每个网站的重新设计,甚至是次要的,都很可能破坏你现有的代码,迫使你(没有警告)根据猜测做出疯狂的更新。 Nokogiri和Mechanize是功能强大的工具,但它们绝不会与直接访问数据库内容的API的功能性,稳定性和一致性进行比较,绕过不断变化的“表面”。在Twitter的情况下,您可以获得API包装的附加好处,如Twitter gem用于访问API,它为API添加了一个用户友好的层,使其更容易集成到您的应用程序中。
所以总结一下:使用API,可能通过一个API包装器,如Twitter的宝石。
感谢您对应用表面的详细解释。我会去叽叽喳喳的宝石。 – Rubyuser
这是另一个:https://github.com/twitter/twitter-text-rb –
当服务不提供API或者API不能充分提供您需要的所有功能时,Web抓取通常是最后的手段。
我会先看看API。这是它的设计目的。
由于网站的结构可能发生巨大变化,导致代码无法正常运行,因此网页抓取可能会产生问题。
通常,公共API往往会有某种契约,不会对提供的数据进行重大更改。如果发生变化,API将提供API版本(可以调用旧版本的API)或文档,以提供有关将要更改的内容以及何时会发生的信息。
此外,网络抓取还有其他成本,如额外的带宽。从API获得的数据通常在应用程序中更有用。
也有相当多的图书馆(红宝石),将提供您需要访问您需要的API需要的许多基本功能。当API更新时,它们通常也会更新。
+1版本和带宽的优点。 –
我不确定我们是否可以在企业帐户的情况下使用twitter API。但似乎API是最好的选择。 – Rubyuser
那么,问一个问题:为什么*不能*使用提供的API?如果没有[良好的合法]理由,则使用API。这是他们的作者创造的。它受到支持,专为任务而设计,可以节省工作(更不用说带宽和服务器开销)。 – 2012-11-07 23:58:13