Как получить загруженный в AJAX контент с другого сайта с помощью Nokogiri? - PullRequest
1 голос
/ 13 июля 2011

Я пытался разобрать некоторый контент HTML с сайта. Nokogiri отлично работает для контента, загруженного с первого раза.

Теперь вопрос заключается в том, как извлечь тот контент, который загружен с использованием AJAX. Например, есть ссылка «посмотреть больше», и с помощью AJAX выбирается больше элементов, или рассмотрим случай для вкладок на основе AJAX.

Как мне получить этот контент?

Ответы [ 2 ]

3 голосов
/ 13 июля 2011

Вы не сможете проанализировать все, что требует выполнения JavaScript для создания этого контента с использованием Nokogiri.Nokogiri - это анализатор HTML / XML, а не веб-браузер.

PhantomJS , с другой стороны * - это веб-браузер, хотя и особый браузер;)посмотрите на это и поиграйте.

1 голос
/ 13 июля 2011

Не совсем понятно, что вы хотите сделать, но если вы пытаетесь получить доступ к дополнительному HTML, загружаемому AJAX, вам нужно будет изучить код, выяснить, какой URL используется для AJAX-запрос, были ли установлены какие-либо идентификаторы сеанса или файлы cookie, затем создайте новый URL-адрес, который воспроизводит то, что использует AJAX. Запросите, и вы должны получить новый контент обратно.

Это может быть трудно сделать, хотя. Как сказал @Nuby, Mechanize может помочь, поскольку он предназначен для управления файлами cookie и сессиями для вас в фоновом режиме. Механизация использует Nokogiri для внутреннего использования, поэтому, если вы запрашиваете страницу у Mechanize, вы можете использовать поиск Nokogiri по ней, чтобы развернуть и извлечь любые конкретные строки JavaScript. Они будут представлены в виде текста, поэтому вы можете использовать регулярные выражения или совпадения подстрок, чтобы получить нужные вам параметры, затем создать новый URL и попросить Mechanize получить его.

...