我如何獲得使用紅寶石機械化寶石的網站的所有鏈接? 機械化是否能做到像海葵寶石:如何使用機械寶石獲取網站的所有鏈接?
Anemone.crawl("https://www.google.com.vn/") do |anemone|
anemone.on_every_page do |page|
puts page.url
end
end
我在網絡爬蟲新手。提前致謝!
我如何獲得使用紅寶石機械化寶石的網站的所有鏈接? 機械化是否能做到像海葵寶石:如何使用機械寶石獲取網站的所有鏈接?
Anemone.crawl("https://www.google.com.vn/") do |anemone|
anemone.on_every_page do |page|
puts page.url
end
end
我在網絡爬蟲新手。提前致謝!
Mechanize很簡單,我建議你閱讀文檔。你可以從Ruby BastardBook開始。
要獲得從機械化頁面所有鏈接試試這個:
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://example.com")
page.links.each {|link| puts "#{link.text} => #{link.href}"}
的代碼是清楚的,我認爲。 page
是一個機械化::頁面對象,用於存儲檢索到的頁面的全部內容。 Mechanize :: Page有links
方法。
機械化是非常強大的,但請記住,如果你想做沒有任何與網站互動使用Nokogiri刮。機械化使用Nokogiri廢料網,所以只能使用Nokogiri刮。
謝謝@monktools。機械化對於交互網頁內容非常有用。但是,它不用於獲取網站的多級鏈接。 – 1Rhino 2014-09-12 02:54:42
Nokogiri不會抓取網站,它是一個HTML/XML解析器;刮掉你需要使用HTTP客戶端來檢索內容,通常這會是OpenURI但存在很多其他客戶端。 Mechanize有很多Nokogiri沒有的輔助方法,但是Nokogiri的優勢在於它更加靈活,可以讓我們操縱一個頁面或從中提取信息,這是我們無法直接從Mechanize獲得的。 – 2015-12-17 22:49:25
我不明白你最後的段落,機械化需要什麼樣的相互作用? – ShadSterling 2016-11-19 18:14:36
你應該問一個關於在Ruby中抓取工具的更一般的問題,我也對答案感興趣。 – 2014-09-11 07:31:10
@BorisStitnicky謝謝你回答我。因爲海葵不再被開發。所以我想改變使用機械抓取。 – 1Rhino 2014-09-11 07:36:00
我沒有回答,我只評論。也許除了機械化之外還有其他工具。我會去尋求更一般的問題。 – 2014-09-11 07:52:46