是否可以提取頁面的HTML,如在Firebug或Chrome DevTools的HTML面板中顯示的那樣?如何從網站中提取動態生成的HTML?
我必須抓取很多網站,但有時信息不在靜態源代碼中,即在加載頁面後運行JavaScript並動態創建一些新的HTML內容。如果我然後提取源代碼,這些內容不存在。
我有一個使用Java構建的網絡爬蟲來做到這一點,但它使用了很多舊的庫。因此,我想轉移到Rails/Ruby解決方案的學習目的,我已經玩了Nokogir我和Mechanize。
是否可以提取頁面的HTML,如在Firebug或Chrome DevTools的HTML面板中顯示的那樣?如何從網站中提取動態生成的HTML?
我必須抓取很多網站,但有時信息不在靜態源代碼中,即在加載頁面後運行JavaScript並動態創建一些新的HTML內容。如果我然後提取源代碼,這些內容不存在。
我有一個使用Java構建的網絡爬蟲來做到這一點,但它使用了很多舊的庫。因此,我想轉移到Rails/Ruby解決方案的學習目的,我已經玩了Nokogir我和Mechanize。
如果抓取工具能夠執行JavaScript,只需使用document.firstElementChild.outerHTML
即可獲取動態創建的HTML結構。
雖然Nokogiri和Mechanize目前是而不是能夠解析JavaScript。爲此,請參閱 Ruby Nokogiri Javascript Parsing和How do I use Mechanize to process JavaScript?。
所以你需要另一個工具,如WATIR或Selenium。那些驅動一個真正的Web瀏覽器,並可以處理任何JavaScript。
您無法從數據庫端獲取記錄。您只能獲取靜態的html代碼。
JavaScript必須通過查詢請求從數據庫請求記錄,而不能由抓取工具提取。
即使是HTML裏面的Javascript,數據也在HTML裏面,只是在