2009-07-16 46 views
2

我需要獲取HTML頁面上的所有對象(樣式表,JavaScript,圖像) 並將數據存儲在數據庫中。 可以通過簡單的獲取src屬性中列出的文件來實現這一點, 但也許有人可以爲此提供任何幫助寶石。如何獲取其上的所有對象上的Ruby頁面

另外,是否有辦法將所有這些文件打包到一個(如web archieve), 可以由大多數瀏覽器打開?

感謝

回答

4

你可以使用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屬性用於解決資源。但是這應該能夠完成這項工作。但是,該解決方案不會獲取樣式表中引用的圖像。

+0

感謝您的好樣品 – taro 2009-07-18 19:57:08

0

退房Mechanize

+0

謝謝,寶石非常有用 – taro 2009-07-18 19:57:38

相關問題