我需要獲取HTML頁面上的所有對象(樣式表,JavaScript,圖像) 並將數據存儲在數據庫中。 可以通過簡單的獲取src屬性中列出的文件來實現這一點, 但也許有人可以爲此提供任何幫助寶石。如何獲取其上的所有對象上的Ruby頁面
另外,是否有辦法將所有這些文件打包到一個(如web archieve), 可以由大多數瀏覽器打開?
感謝
我需要獲取HTML頁面上的所有對象(樣式表,JavaScript,圖像) 並將數據存儲在數據庫中。 可以通過簡單的獲取src屬性中列出的文件來實現這一點, 但也許有人可以爲此提供任何幫助寶石。如何獲取其上的所有對象上的Ruby頁面
另外,是否有辦法將所有這些文件打包到一個(如web archieve), 可以由大多數瀏覽器打開?
感謝
你可以使用mechanize做這個工作:
require "rubygems"
require "mechanize"
url = "http://stackoverflow.com/"
agent = WWW::Mechanize.new
page = agent.get(url)
page.search('img[@src]').each do |image|
src = image["src"]
image_file = agent.get(src) if src
# Store image_file data it in database ...
end
page.search('link[rel="stylesheet"]').each do |css|
src = css["src"]
css_file = agent.get(src) if src
# Store css_file data it in database ...
end
page.search('script[type="text/javascript"]').each do |script|
src = script["src"]
script_file = agent.get(src) if src
# Store script_file data it in database ...
end
你仍然需要處理異常和相對src屬性用於解決資源。但是這應該能夠完成這項工作。但是,該解決方案不會獲取樣式表中引用的圖像。
感謝您的好樣品 – taro 2009-07-18 19:57:08