Я немного искал, но ничего не понял. Я хочу сохранить веб-страницу в поле базы данных, чтобы впоследствии можно было просмотреть исходный код (я не хочу сохранять файл, потому что я на Heroku).
Я пробовал:
Model.create(:text => open(url)
и
Model.create(:text => Nokogiri::HTML(open(url)))
Однако ни один из них, похоже, не сохраняет исходный код страницы. Я предполагаю, что я здесь пропускаю шаг, но может ли кто-нибудь направить меня в правильном направлении?
Редактировать # 1
Когда я попробовал to_s в своем документе Nokogiri :: HTML, я получил пустую строку. Это мой код ниже. Причина длинного пользовательского агента в том, что Google показывает разные результаты в зависимости от пользовательского агента, и я пытаюсь имитировать настольный пользовательский агент.
Nokogiri::HTML(open("http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=apple", 'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2'), nil, 'utf-8').to_s
Редактировать # 2
Очень странно. Этот код также возвращает пустую строку. Я проверил с некоторыми другими людьми, и они не получали пустых строк.
text = open("http://www.google.com/search?aq=f&gcx=c&sourceid=chrome&ie=UTF-8&q=apple", 'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2').read
Редактировать # 3
Я обнаружил, что с моей установкой ruby в Windows 7 что-то не так. Я попытался установить ubuntu на моем компьютере под управлением Windows в качестве гостя, и это сработало, как и ожидалось. Собираюсь код на установку Ubuntu отныне.