2 Stimmen

Wie holt man eine HTML-Seite mit all ihren Objekten in Ruby?

Ich muss eine HTML-Seite mit allen Objekten darauf (Stylesheets, Javascripts, Bilder) abrufen und die Daten in der Datenbank speichern. Es ist möglich, dies zu implementieren, indem man einfach die in den src-Attributen aufgeführten Dateien abruft, aber vielleicht kann jemand ein Hilfsprogramm für diese Aufgabe vorschlagen.

Gibt es auch eine Möglichkeit, alle diese Dateien zu einem Paket zusammenzufassen (z. B. Web Archieve), die von den meisten Browsern geöffnet werden kann?

Danke

4voto

Michel de Graaf Punkte 251

Sie könnten verwenden mechanisieren um diese Aufgabe zu erfüllen:

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 müssen noch Ausnahmen behandeln und Ressourcen mit relativen src-Attributen fixieren. Aber dies sollte die Aufgabe erfüllen. Mit dieser Lösung werden jedoch keine Bilder abgerufen, auf die in den Stylesheets verwiesen wird.

0voto

Aaron Hinni Punkte 14348

Überprüfen Sie Mechanisieren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X