【问题标题】:Rails 3 pulling data from another siteRails 3 从另一个站点提取数据
【发布时间】:2011-05-29 22:42:51
【问题描述】:

我的一个项目有一个客户请求,他们希望能够输入一个网址并让它从他们输入的网址的网站中提取一些信息并将其保存在数据库中。

所以用户输入:http://www.example.com/2342342 并且我的控制器访问该站点,并获取该站点上第一个 <h1>Tag</h1> 的内容并将其保存在数据库中。这可能吗?如果是这样,我将如何去做?我会使用一些 rails 命令来执行此操作,还是使用 jQuery 之类的其他命令?

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    Nokogiri 是一个很棒的解析器,可以直接使用 url。

    这里有两个步骤:

    1. 用 url 作为参数实例化一个 Nokogiri 对象

    2. 解析 html 页面以获得您期望的结果

    在此处查找说明:http://nokogiri.org/tutorials/parsing_an_html_xml_document.html

    因为您将与另一个网站合作,请记住两条建议:

    • 包装您的查询,以便在网站出现故障时进行救援

    • 考虑使用 ajax 请求,因为它可能很长​​p>

    【讨论】:

    • 如果我错了,请纠正我,但 ajax 不会工作,因为它是一个跨域请求。我认为您使用 Nokogiri 的想法是正确的。
    • 重点是对您自己的控制器使用 ajax 请求,该控制器将处理包裹在 begin/rescue 中的 Nokogiri 的东西。
    【解决方案2】:

    我会在这里查看 Railscast:

    http://railscasts.com/episodes/190-screen-scraping-with-nokogiri

    很好地解释了如何使用 Nokogiri 和从其他网站抓取内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 2014-05-25
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多