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

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

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

Для того, чтобы узнать URL-адреса этих запросов, используйте плагин Firefox — LiveHTTPHeaders (или аналогичный, но я рекомендую именно его). Для его активации нажмите alt (вызовет главное меню Firefox), затем выберите «инструменты» — «просмотр HTTP заголовков». Откроется окно плагина, которое будет отображать все GET и POST запросы, происходящие в реальном времени:


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

1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 3, средний балл: 5,00)
Загрузка...
Автор: admin, 2 декабря 2012
Рубрики: Парсинг
Метки: , ,
2 комментария к сообщению: “Как парсить контент, которого нет в коде страницы (контент подгружается скриптами)”
  1. Доброго вечера. Подскажите куда копать по поводу этого сайта, у меня версия ULTIMATE . Я бы сказал на 30% удается загрузить с помощью WBApp — мне необходимо спарсить все возможные значения , особенно на странице #explain.
    Заранее благодарю.

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

Вы должны войти чтобы добавить комментарий.

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

css.php