2011-05-29 35 views
2

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

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

回答

7

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

所以两个步骤有:

  1. 实例化一个引入nokogiri对象与URL作为PARAM

  2. 解析HTML页面,让你期待

在这里找到说明什么: http://nokogiri.org/tutorials/parsing_an_html_xml_document.html

因为你会使用anot她的网站,记住一点建议:

  • 包装你的查询,这样就可以挽救,如果网站已关闭

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

+0

纠正我,如果即时通讯错误,但阿贾克斯不会工作,因为它是一个跨域请求。我认为你有正确的想法使用Nokogiri。 – agmcleod 2011-05-29 23:10:51

+1

关键是使用一个ajax请求到你自己的控制器,它将处理包含在开始/救援中的Nokogiri的东西。 – apneadiving 2011-05-29 23:18:35