Скрапинг с Goutte (crawler). Парсинг сайтов с использованием библиотеки Goutte
Показываем PHP-библиотеку для парсинга (скрапинга) сайтов. Вы сможете забирать любую информацию со стороннего сайта и отправлять формы.
3К открытий3К показов
Илья Лящук
Web-разработчик, Prog-Time
В новой записи я вам покажу PHP библиотеку для парсинга (скрапинга) сайтов. С помощью данной библиотеки вы сможете забирать любую информацию со стороннего сайта, переходить по ссылкам, автоматически отправлять формы.
Подключение библиотеки Goutte и создание запроса на сайт
В качестве примера я буду использовать свой сайт. В самом начале нужно сделать запрос на главную страницу, далее мы будем забирать с неё элементы, поэтому код ниже будет использоваться в каждом запросе, просто я его не буду дублировать.
Получение текстовой информации с помощью Goutte
Используя метод filter вы можете указать селектор для выборки элементов. Так как на данной странице используется несколько элементов с классом home_heading_post мы будем использовать метод each.
Получение атрибута href ссылки
Получение атрибута src изображения
Фильтрация выборки (выборка элементов через один)
Используйте метод reduce для указания функции для фильтрации выборки. В моём примере указана функция которая задаёт порядок «через 1» и “каждый десятый элемент”.
Получение элемента указанного порядка
С помощью метода eq вы можете указать номер элемента. Нумерация идёт с 0, поэтому в моём примере и мы получим 4 элемент с классом “home_heading_post”.
Получение первого и последнего элемента
first() — возвращаем первый элемент.
last() — возвращает последний элемент.
Получение соседнего элемента на уровне в дереве DOM
siblings() — возвращает соседние элементы в дереве DOM.
Получение ссылки по тексту и нажатие на ссылку
С помощью метода selectLink() получаем ссылку, в качестве параметра передадим текст внутри ссылки.
С помощью метода link() переходим по ссылке и получаем новую страницу.
С помощью метода getUri() получаем URI ссылки.
Получение объекта изображения
Получение дочерних элементов
Отправка формы с помощью Goutte
3К открытий3К показов