Как парсить контент, которого нет в коде страницы (контент подгружается скриптами в браузере)

Парсинг данных, которые подгружаюся POST запросом (парсинг с помощью макроса PHP_SCRIPT)

Когда вы открываете веб-страницу в браузере, например http://www.yandex.ru/, то происходит GET-запрос к этому адресу. Далее браузер получает текстовый контент по этому GET-запросу и начинает его обрабатывать (например, выполняет из кода документа скрипты, которые догружают WEB-страницу производя другие GET или POST запросы (для подгрузки дополнительного контента).

Если в Content Downloader использовать библиотеку Indy или Clever Internet Suite (ctrl+h для выбора библиотеки), то парсер не будет обрабатывать скрипты (произойдет обычный GET-запрос к URL-адресу). Но на некоторых интернет-сайтах такими скриптами могут подгружаться нужные нам данные, например, цены, описания товаров, ссылки и прочее. Зная url-адреса (ссылки), по которым происходят GET или POST Запросы для подгрузки нужных данных, мы можем подгружать эти данные при парсинге, используя макрос шаблона вывода GETMORECONTENT (либо можно просто добавить эти адреса в список ссылок и производить парсинг с них).

Следует отметить, что при выборе библиотеки Internet Explorer (DOM) (WBApp) (включается в окне ctrl+h), код WEB-документов будет загружаться с использованием браузера Internet Explorer, который будет сам автоматически выполнять скрипты и подгружать дополнительный контент. Но выбор Internet Explorer снижает скорость парсинга и далее мы будем рассматривать варианты подгрузки данных без него. Также, этот метод позволяет запускать списки событий приложения WBApp, которые могут имитировать прокрутки WEB-страниц вниз, клики по различным элементам страниц и так далее… Подробнее о WBApp вы можете почитать тут.

Для того, чтобы узнать URL-адреса запросов подгрузки данных, мы будем использовать монитор сети браузера Firefox (shift+ctrl+e в браузере Firefox). Монитор сети будет отображать все GET и POST запросы, происходящие в браузере в реальном времени.

Как получать адреса запросов и их параметры



Content Downloader


Content Downloader


Content Downloader

После получения данных о нужном запросе переходим к его воссозданию в Content Downloader.

Сначала определитесь, будет ли это запрос, по которому парсится основной контент или это запрос для подгрузки дополнительных данных к основному контенту.

Если это запрос, по которому вы берете основной контент, например, страницы с выдачей товаров заскриптованного сайта, то вставляйте адрес(а) запроса(ов) в список ссылок Content Downloader.

Если же это подгрузка дополнительных данных, например, описания товара или контактных данных, используйте для воссоздания запроса макрос шаблона вывода <GETMORECONTENT>

Загрузка основного контента (парсинг по списку ссылок)
Просто вставляете URL в список ссылок программы (F8) или генерируете список ссылок должным образом и настраиваете параметры запросов

Content Downloader

Следует отметить, что библиотека Clever Internet Suite лучше работает с HTTPS

Подробнее о парсинге контента и ссылок с использованием POST-запросов

Старое видео и примеры

Если при парсинге вы будете использовать библиотеку Internet Explorer (DOM) (ctrl+h для смены библиотеки), то код документа будет браться из (созданного динамически) браузера (который загрузит указанную WEB-страницу, выполнит на ней все скрипты и подгрузит все данные). Минус этого метода состоит в том, что для загрузки каждого документа будет запускаться отдельный браузер Internet Explorer (очень ресурсоемкая процедура). Парсить таким методом можно максимум в 2 потока (иначе часть данных может просто не успевать догружаться). Также, этот метод позволяет запускать списки событий приложения WBApp, которые могут имитировать прокрутки WEB-страниц вниз, клики по различным элементам страниц и так далее… Подробнее о WBApp вы можете почитать тут.



Еще один пример:

Примечание к скриншоту выше: Параметр store_id (23353) парсим из кода WEB-страницы товара и подставляем в ссылку макроса <GETMORECONTENT>

1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 5, средний балл: 5.00)
Loading...
Автор: admin, 2 December 2012
Рубрики: Парсинг
Tags: , ,
Есть 2 коммент. к сообщению: “Как парсить контент, которого нет в коде страницы (контент подгружается скриптами в браузере)”
  1. Аноним says:

    Доброго вечера. Подскажите куда копать по поводу этого сайта, у меня версия ULTIMATE . Я бы сказал на 30% удается загрузить с помощью WBApp – мне необходимо спарсить все возможные значения , особенно на странице #explain.
    Заранее благодарю.

Написать комментарий

Последние статьи

css.php