2009-07-16 3 views
2

Мне нужно получить HTML-страницу со всеми объектами на ней (таблицы стилей, javascripts, images) и хранить данные в базе данных. Это можно реализовать с помощью простых извлечений файлов, перечисленных в атрибутах src, , но, возможно, кто-то может предложить любой хелперный камень для этого.Как получить HTML-страницу со всеми ее объектами на Ruby

Кроме того, есть ли способ упаковать все эти файлы в один (например, веб-архив), , который может быть открыт большинством браузеров?

Благодаря

ответ

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

Заканчивать Mechanize

+0

Спасибо, драгоценный камень очень полезен – taro

 Смежные вопросы

  • Нет связанных вопросов^_^