Ruby on rails 推特API与网络抓取?
首先,我想获得我的twitter帐户的所有追随者。我做了一些研究,发现我们可以使用RubyonRails使用Nokogiri或MechanizeGems进行web抓取。我还得到了一个css选择器用于网页抓取。现在,如果我查找HTML页面源代码,它不会显示该帐户的所有追随者Ruby on rails 推特API与网络抓取?,ruby-on-rails,ruby,twitter,nokogiri,mechanize-ruby,Ruby On Rails,Ruby,Twitter,Nokogiri,Mechanize Ruby,首先,我想获得我的twitter帐户的所有追随者。我做了一些研究,发现我们可以使用RubyonRails使用Nokogiri或MechanizeGems进行web抓取。我还得到了一个css选择器用于网页抓取。现在,如果我查找HTML页面源代码,它不会显示该帐户的所有追随者 我真的可以使用网页抓取代码来获取我所有的twitter关注者吗?还是应该使用twitter API?当服务没有提供API或者API没有充分提供您所需的所有功能时,网页抓取通常是最后的手段 我将首先研究API。这就是它的设计目的
我真的可以使用网页抓取代码来获取我所有的twitter关注者吗?还是应该使用twitter API?当服务没有提供API或者API没有充分提供您所需的所有功能时,网页抓取通常是最后的手段 我将首先研究API。这就是它的设计目的 网页抓取可能会有问题,因为网站的结构可能会发生剧烈的变化,使代码无法正常工作 通常,公共API倾向于具有某种契约,即所提供的数据不会发生重大变化。如果有更改,API将提供API的版本控制(能够调用旧版本的API)或文档,以提供有关更改内容和更改时间的信息 此外,网络抓取还有其他成本,比如额外的带宽。从API获得的数据通常在应用程序中更有用
还有相当多的库(RubyGems),它们将提供访问所需API所需的许多基本功能。它们通常也会在API更新时更新。一般来说,尽可能使用API 顾名思义,使用“scraping”只处理应用程序的“surface”,用MVC术语来说就是它的(HTML)视图。这些观点随时可能改变——想想推特和其他类似服务经历了多少次站点重新设计。如果您正在抓取,那么每个站点的重新设计,即使是一个小的重新设计,都很可能会破坏您现有的代码,迫使您(在没有警告的情况下)根据猜测进行疯狂的更新 Nokogiri和Mechanize是功能强大的工具,但它们永远无法与API的功能性、稳定性和一致性相比,API直接访问数据库内容,完全绕过不断变化的“表面”。在Twitter的例子中,API包装器(如用于访问API的API)的附加好处是,它为API添加了一个用户友好的层,使其更容易集成到应用程序中
总而言之:使用API,可能通过一个API包装器,比如Twitter gem。好吧,换一种方式问:为什么不使用提供的API?如果没有[正当的]理由,则使用API。这就是他们创作它的目的。它是受支持的,是为完成任务而设计的,并且可以节省大量工作(更不用说带宽和服务器开销了)。我不确定我们是否可以在公司帐户中使用twitter API。但似乎API是最好的选择。