2009-07-16 7 views
2

HTMLページにすべてのオブジェクト(スタイルシート、javascript、画像) を入れてデータをデータベースに格納する必要があります。 これはsrc属性の にリストされているファイルを単純に取得することで実装できますが、これに対して任意のヘルパーの宝石を提案することができます。Ruby上のすべてのオブジェクトを含むHTMLページを取得する方法

また、このファイルを大部分のブラウザで開くことができる (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

0
+0

ありがとう、宝石は非常に便利です – taro

関連する問題