2009-07-16 2 views
2

Ich muss HTML-Seite mit allen Objekten (Stylesheets, Javascripts, Bilder) holen und Daten in der Datenbank speichern. Es ist möglich, dies durch einfaches Abrufen von Dateien zu implementieren, die in den src-Attributen aufgeführt sind, aber vielleicht kann jemand ein beliebiges Helfer-Juwel dafür vorschlagen.So holen Sie die HTML-Seite mit allen ihren Objekten auf Ruby

Gibt es auch Möglichkeit, all diese Dateien zu einem (wie Web-Archiv), , die von den meisten Browsern geöffnet werden können?

Dank

Antwort

4

Sie mechanize verwenden könnte diesen Job zu machen:

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 

Sie haben noch Ausnahmen zu behandeln und beheben Ressourcen mit relativ src Attribute. Aber das sollte die Arbeit machen. Diese Lösung ruft jedoch keine Bilder ab, auf die in den Stylesheets verwiesen wird.

+0

Danke für nette Probe – taro

0

Check out Mechanize

+0

Danke, Edelstein ist sehr nützlich – taro

Verwandte Themen