Rails 3从另一个站点提取数据

时间:2011-05-29 22:42:52

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

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

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

2 个答案:

答案 0 :(得分:7)

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

那里有两个步骤:

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

  2. 解析html页面以获得您期望的内容

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

    因为您将与其他网站合作,请记住两条建议:

    • 打包您的查询,以便您可以解决网站是否已关闭

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

答案 1 :(得分:3)

我会在这里查看Railscast:

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

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