【问题标题】:How to write a crawler in ruby?如何用 ruby​​ 编写爬虫?
【发布时间】:2012-02-21 05:18:27
【问题描述】:

我正在开发一个 ROR 应用程序,在该应用程序中我需要实现一个爬虫,该爬虫可以爬取其他站点并将数据存储在我的数据库中。例如,假设我想从http://www.snapdeal.com 抓取所有交易并将它们存储到我的数据库中。如何使用爬虫实现这一点?

【问题讨论】:

  • 就像任何其他语言一样。获取一些 HTML,解析它,跟踪链接,将所有内容存储在数据库中。
  • 你可以试试pioneer gem,虽然它还在开发中

标签: ruby-on-rails ruby web-crawler


【解决方案1】:

根据您的用例,有几个选项。

我在几个项目中使用了 Nokogiri 和 Mechanize 的组合,我认为它们是不错的选择。

【讨论】:

    【解决方案2】:

    你想看看mechanize。另外,从您提到的内容来看,您可能根本不需要导轨。

    【讨论】:

    • 他可能在某个时候需要网络服务器来运行它,我认为 Rails 会来救援。当然还有其他网络服务器,但 Rails 非常简单。
    • @bhushan,不,从他提到的情况来看,没有理由认为 Rails 会有用。
    • 我知道脚本是独立的,但是你如何将它们与 App 结合起来?
    • @bhushan,如果有一个 Rails 应用程序可以将它与它们唯一的共同点就是数据库配置。
    【解决方案3】:

    正如 Sergio 评论的那样,您检索页面、解析它们并点击它们的链接。在您的情况下,听起来您更专注于“屏幕抓取”而不是抓取深度链接网络,因此像 Scrubyt 这样的库会有所帮助(尽管它的进展已经消失)。你也可以使用像Nokogiri这样的低级解析库。

    【讨论】:

    • 谢谢大家的快速回复。但是有些网站需要认证才能进入。那么这样的网站可以爬取吗?如果是,那怎么办?
    • 听起来 Scrubyt 可能会处理提交表单并维护生成的会话 cookie,尽管我从未尝试过。
    猜你喜欢
    • 2010-09-11
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2011-06-07
    • 1970-01-01
    相关资源
    最近更新 更多