0
我正在使用Nokogiri從http://www.englandgallery.com/artists.php中刪除藝術家列表。我需要使用Watir,因爲該頁面會使用JavaScript加載藝術家。 我的代碼看起來像這樣如何更改Watir執行後的DOM執行腳本
browser = Watir::Browser.new(:phantomjs)
browser.goto "http://www.englandgallery.com/artists.php"
browser.execute_script("javascript:loadContent('ALL');")
indexPage = Nokogiri::HTML(browser.html)
artists = indexPage.css('a.artistlink')
artists.each do |artist|
puts artist.text
end
默認只顯示當代藝術家的頁面,所以你需要執行JS加載所有的藝術家。我確信loadContent('ALL')
被執行並且實際上將所有藝術家加載到該頁面,但是隻有當代藝術家被選擇到artists
陣列。我錯過了什麼?我是否需要以某種方式重新加載瀏覽器以獲取當前的DOM?
解決了它,謝謝! – vorelq
爲什麼你需要在那裏使用Nokogiri?使用普通的watir就足夠了 - 'browser.a(class:「artistlink」)。each {| artist |放置artist.text}' –