2011-05-29 37 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