2013-07-07 49 views
5

我想通過看其在Chrome的HTML,並搶得使用引入nokogiri數據刮網站。問題是,有些標籤是動態生成的,而且在使用open-uri時,它們不會顯示打開(url)請求。有沒有辦法「強制」一個網站動態生成一個工具,如打開的uri閱讀的內容?入門動態生成HTML隨着引入nokogiri /打開URI

+1

看一看[機械化](http://mechanize.rubyforge.org/)。我認爲它可以做你想做的事。 – Aaronneyer

+2

根據*網站如何生成其內容,您可能需要首先執行JavaScript。 – tessi

+0

有時在複雜的網站中機械化卡住。如果JRuby是一個選項,並且機械化不起作用,我還會看看[Celerity](http://celerity.rubyforge.org/)。 – yonosoytu

回答

4

如果通過開放-URI閱讀它不會產生你所需要的內容,然後有很好的機會在客戶端生成包含JavaScript內容。

這可能是個好消息 - 通過檢查AJAX請求的頁面做,你可能會發現你要尋找的,然後你就可以申請直接解析內容的JSON飼料。這將使您無需挖掘HTML即可獲得數據 - 方便!

如果不出於某種原因,不過,你會需要一些樣的瀏覽器打開網頁,讓它執行其客戶方的Javascript,然後將得到的DOM轉儲到HTML。類似PhantomJS是這類工作的絕佳選擇。

+0

小費#1爲我節省了大量的時間。 –