Можно ли создать сайт с Ruby On Rails, который собирает данные с другого сайта и отображает их? - PullRequest
0 голосов
/ 26 ноября 2011

Я учу себя Ruby on Rails. Я хотел бы сделать сайт, который всякий раз, когда кто-то посещает его, будет очищать другой сайт и отображать некоторые данные. Возможно ли это?

Ответы [ 4 ]

0 голосов
/ 26 ноября 2011

Вот небольшой пример кода, который поможет вам

require 'open-uri'
open('http://www.stackoverflow.com'){ |f| puts f.read }

Это выведет в окно вашего терминала HTML-код с этого сайта. Если вы этого еще не сделали, воспользуйтесь утилитой irb , чтобы увидеть, как она работает, и, наконец, вот основной способ избавиться от многих проблем. HTML, если вам нужно ..

include ActionView::Helpers::SanitizeHelper
open('http://www.stackoverflow.com'){ |f| puts strip_tags(f.read) }
0 голосов
/ 26 ноября 2011

Полностью.Вы можете использовать Nokogiri, чтобы взять содержимое веб-страницы, проанализировать его и затем отобразить на своем сайте.Это требует некоторых знаний о сайте, который вы потребляете в смысле класса / идентификатора элементов.

Nokogiri gem

0 голосов
/ 26 ноября 2011

Да. Вы должны использовать Nokogiri или регулярные выражения, чтобы извлечь данные, которые вы хотите, а затем отобразить их.

0 голосов
/ 26 ноября 2011

Да, это возможно.

Просто запомните одну вещь: не сканировать данные в рамках действия вашего контроллера.Сканирование данных может быть длительным процессом.Целевой сайт может работать медленно или не работать, и он заблокирует весь ваш сайт.Вы должны использовать какое-то задание cron или очередь заданий, чтобы сканировать данные и сохранять их в своей базе данных.Приложение rails получает данные из базы данных, а не с другого сайта напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...