В этой статье мы разберём создание парсеры на основе PHP, при этом максимально просто, также будим использовать библиотеку «Simple HTML DOM».
Если вы плохо работаете с PHP, то посмотрите наш PHP учебник.
Установка библиотеки:
Перед тем, как перейти к самой разработке нужно скачать саму библиотек, для этого заходим по ссылке и нажимаем кнопку «Download».
У вас скачивается архив, из него, перемешаем файл под названием «simple_html_dom.php» в папку с вашем проектом, после подключаем его в файл парсера, через require_once
.
1 | require_once "./simple_html_dom.php"; |
Теперь библиотека установлена.
Пишем парсер контента на PHP:
Теперь пришло время написать парсер на PHP самому и это будет пошаговая инструкция, умаю вам будет понятно.
Но сначала расскажу, от куда будем брать данные, будем их брать с сайта StopGame.ru, мне кажется он наиболее будет понятный для примере, возьмём мы с него новости, точнее название.
Для начала объявим переменную в которой у нас будет хранится URL страницы, от куда будем брать данные.
1 | $url = "https://stopgame.ru/news"; |
Дальше будем использовать стандартную библиотеку PHP CURL, благодаря которой мы возьмём страницу сайта.
1 2 3 4 | $ch = curl_init(); // Создаём запрос curl_setopt($ch, CURLOPT_URL, $url); // Настраиваем URL запроса curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Задаём в качестве возвращаемого значение от ответа строку $res = curl_exec($ch); // Отправляем запрос |
Давайте не много разберём этот код, мы создаём запрос с помощью функции curl_init()
, дальше идёт его настройка, через функцию curl_setopt()
, ну и отправляем его через curl_exec()
и сохраняем ответ в переменную $res
.
Самая интересное в этом коде функция curl_setopt()
, потому что она имеет очень много настроек для запросов, поэтому, если кому не достаточно информации о ней, то переходите по ссылке, также посмотрите документацию библиотеки CURL.
Настало время самого интересного, это самого парсенга и работе с библиотекой «Simple HTML DOM».
1 2 | $dom = new simple_html_dom(); // Создаём объект класса simple_html_dom $html = str_get_html($res); // Берём из строки HTML |
Тут не чего сложного нет, даже нечего объяснять, всё в комментариях написано.
Теперь пришло время получить какие данные нам нужны и вывести их на экран, мне же нужно получить только заголовки.
1 2 3 4 5 6 7 | // Находим элемент по селектору $list = $html -> find('.lent-left div.title.lent-title'); // Выводим всё элементы foreach ($list as $key => $value) { echo "<h3>" . $value->plaintext . "</h3>"; } |
Тут тоже не чего сложного нет, благодаря $html -> find()
, мы находим нужные элементы по селекторы и получаем список их.
После этого проходимся по списку с помощью цикла foreach
, выводим на экран каждый элемент, вот результат.
Как можете заметить, он вывел заголовки из новостей, что значит всё работает.
То есть суть работы парсера в том, что вы просто берёте страницу и ищите по селектору нужный вам элемент, при чём так работает почти всё парсеры на любом языке.
Вывод:
В это статье вы прочитали о том как делаются парсеры на основе PHP, думаю я ту рассказал всё что нужно знать.
Также если вас заинтересовала это библиотека, то посмотрите её документацию.