2011-12-13 89 views
2

我正在使用Ruby on Rails和Mechanize庫來抓取商店網站。問題在於我無法抓取某些元素的很多次。但是,當我在網站上查看源代碼時,我可以看到這一點。最佳網頁抓取Ruby on Rails庫,處理由javascript生成的動態HTML

例如,沃爾瑪的類別(在這種情況下,它是「健康」)是不可見的。我相信這是因爲它是動態生成的HTML(例如來自javascript)。爲了減少這一點,我需要一個瀏覽器來處理Web請求。

http://www.walmart.com/ip/Replacement-Sensor-Module-for-AlcoMate-Prestige-Breathalyzer/10167376

我也使用在Amazon EC2上一臺Linux機器。安裝用於UI抓取的瀏覽器會很困難。有沒有可以幫助我的Rails gem/plugin?

謝謝,所有!

回答

3

你的問題的意思是,用Web瀏覽器解析HTML文檔的DOM的簡單方法是什麼,然後在文檔中針對解析的DOM執行JavaScript?無需運行實際的Web瀏覽器。

這有點棘手。

但是,一切都不會丟失。看看Capybara。雖然創建用於驗收測試,但您也可以將其用於文檔的一般維護。要執行JavaScript,您需要使用支持它的驅動程序,因爲您希望它是「無頭」(無瀏覽器GUI),可能意味着使用capybara-webkitAkephaloscapybara-envjs

另一種選擇可能是Harmony,我一無所知,只是它似乎你想要做什麼,但似乎也不能維持了,所以因人而異。