我在我的一個項目上有一個客戶端請求,他們希望能夠輸入一個url並讓它從網站輸入的url中抽取一些信息並將其保存在數據庫中。Rails 3從另一個網站拉取數據
因此,用戶輸入:http://www.example.com/2342342和我的控制器訪問該站點,並獲取站點上第一個<h1>Tag</h1>
的內容並將其保存在數據庫中。這可能嗎?如果是這樣,我該如何去做呢?我會使用一些rails命令來做到這一點,或者其他的東西,比如jQuery?
我在我的一個項目上有一個客戶端請求,他們希望能夠輸入一個url並讓它從網站輸入的url中抽取一些信息並將其保存在數據庫中。Rails 3從另一個網站拉取數據
因此,用戶輸入:http://www.example.com/2342342和我的控制器訪問該站點,並獲取站點上第一個<h1>Tag</h1>
的內容並將其保存在數據庫中。這可能嗎?如果是這樣,我該如何去做呢?我會使用一些rails命令來做到這一點,或者其他的東西,比如jQuery?
Nokogiri是一個很好的解析器,可以直接使用url。
所以兩個步驟有:
實例化一個引入nokogiri對象與URL作爲PARAM
解析HTML頁面,讓你期待
在這裏找到說明什麼: http://nokogiri.org/tutorials/parsing_an_html_xml_document.html
因爲你會使用anot她的網站,記住一點建議:
包裝你的查詢,這樣就可以挽救,如果網站已關閉
考慮使用AJAX請求,因爲它可能很長
我會在這裏結帳Railscast:
http://railscasts.com/episodes/190-screen-scraping-with-nokogiri
這很好的解釋瞭如何使用Nokogiri並從其他網站上刪除內容。
糾正我,如果即時通訊錯誤,但阿賈克斯不會工作,因爲它是一個跨域請求。我認爲你有正確的想法使用Nokogiri。 – agmcleod 2011-05-29 23:10:51
關鍵是使用一個ajax請求到你自己的控制器,它將處理包含在開始/救援中的Nokogiri的東西。 – apneadiving 2011-05-29 23:18:35