Генератор парсеров BrowserExt

BrowserExt - php расширение для парсинга веб-страниц


Опубликовано 2013-06-16

PHP расширение BrowserExt представляет собой управляемый браузер, основанный на QtWebKit и предназначенный для парсинга веб-страниц.

  • Поддерживает javascript и AJAX.
  • Для выборки элементов использует xpath
  • Позволяет заполнять формы, кликать на элементах документа
  • Позволяет получать атрибуты, свойства и другие параметры элемента документа, перебирать элементы в дереве
  • Позволяет загружать файлы по ссылке
  • Позволяет делать вертикальный скроллинг страницы
  • Поддерживает список прокси-серверов, может проверять прокси в несколько потоков

https://github.com/scraperlab/browserext

Короткий пример:

Использование

Для начала необходимо создать класс браузера:

Затем загрузить страницу:

Каждая страница загружается в новой вкладке, для загрузки в той же вкладке необходимо передать второй параметр равный true. Для перехода на предыдущую страницу необходимо вызвать метод `back()`.

Можно кликнуть на ссылку или кнопку, указав ее xpath.

Страница будет загружена в новой вкладке, для загрузки в той же вкладке необходимо передать второй параметр как true.

Можно выбрать элементы по xpath:

Данный метод возвращает массив объектов класса PhpWebElement. У каждого элемента можно получить атрибуты, свойства, тег, значение элемента:

Можно перейти к родительскому или к дочерним элементам, они также будут представлять собой объекты класса PhpWebElement:

В примере выше производится проход по всем родительским элементам и сохранение их тегов в массиве.

Для элемента можно выполнить относительный xpath:

Этот код перебирает все элементы с классом item и выводит текст первой и второй ссылки.

Можно узнать xpath элемента или кликнуть на элементе:

Браузер может использовать список прокси-серверов для загрузки страниц. Каждая новая страница загружается с новым прокси, если их несколько.

В вышеприведенном примере задается массив из двух прокси и передается в браузер. Второй параметр определяет - надо ли тестировать прокси. После тестирования всех прокси выводятся те, что остались в списке, т.е. успешно прошедшие проверку.