2016-09-20 5 views
0

Я пытаюсь просканировать каталог электронной коммерции, где данные о продуктах загружаются с использованием ответов Ajax.Получение полной HTML-страницы (включая ответы AJAX) в Ruby

Таким образом, контент в ответе с использованием запроса получения является неполным (частичные данные).

Я использую стандартную HTTP-библиотеку Ruby для получения & Nokogiri для синтаксического анализа.

Есть ли способ, в котором я могу инициировать запрос & записать ответ после некоторой задержки?

ответ

0

Вам нужен libary/method/way, который имеет javascript-механизм для запуска javascript с момента использования ajax (если вы хотите, чтобы это было сделано автоматически).

Вы можете использовать обезглавленный браузер для этого, как phantomjs:

PhantomJS Project Homepage

PhantomJS for Ruby

Wiki Article

Это в основном нормальный браузер без интерфейса. PhantomJS использует движок Webkit (например, используемый Safari). Так что он способен выполнять JS, а также AJAX.

+0

Его не совсем верно. Если вы заранее знаете достаточно, вы можете выполнить запрос без участия javascript. – Felix

+0

@Felix: Я согласен (отредактирован ответ). Но может быть много работы (и головной боли), чтобы пользовательский создать все запросы AJAX, чтобы иметь в конце тот же DOM, что и обычно с помощью веб-браузера. И, как вы упомянули, вам нужно заранее знать заранее. Хотя это нормально для всего лишь одной конкретной «страницы», для разных сайтов/страниц сайта может потребоваться много времени. – Marcel

+0

абсолютно согласен. – Felix