すべてのオブジェクト(スタイルシート、JavaScript、画像)を含むHTMLページをフェッチし、データベースにデータを保存する必要があります。src属性にリストされているファイルを単純にフェッチすることでこれを実装することは可能ですが、誰かがこのためのヘルパーgemを提案できるかもしれません。
また、このすべてのファイルを1つにパッケージ化する方法(Webアーカイブなど)はありますか?これはほとんどのブラウザーで開くことができますか?
ありがとう
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属性でリソースを修正する必要があります。しかし、これでうまくいくはずです。ただし、このソリューションでは、スタイルシートで参照されている画像はフェッチされません。
Mechanizeをチェックしてください