2

すべてのオブジェクト(スタイルシート、JavaScript、画像)を含むHTMLページをフェッチし、データベースにデータを保存する必要があります。src属性にリストされているファイルを単純にフェッチすることでこれを実装することは可能ですが、誰かがこのためのヘルパーgemを提案できるかもしれません。

また、このすべてのファイルを1つにパッケージ化する方法(Webアーカイブなど)はありますか?これはほとんどのブラウザーで開くことができますか?

ありがとう

4

2 に答える 2

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属性でリソースを修正する必要があります。しかし、これでうまくいくはずです。ただし、このソリューションでは、スタイルシートで参照されている画像はフェッチされません。

于 2009-07-16T15:10:21.383 に答える
0

Mechanizeをチェックしてください

于 2009-07-16T14:08:44.470 に答える