Всем привет! Сегодня мы напишем скрипт PHP для парсинга сайта (то есть выборки определенных фрагментов теста или html тегов).
В примере будем парсить главную страницу моего сайта https://devopser.online/. Допустим, нужно спарсить пункты меню (правое меню) и поместить в отдельный файл.
Первое, что необходимо сделать – получить содержимое страницы. Это делается с помощью PHP функции file_get_contents:
В переменной $str будет находится все содержимое страницы, которое мы парсим, включая html, css, js и т.д.
Затем мы будем использовать регулярные выражения для выборки определенного текста, то есть пункты меню. В PHP используются разные функции регулярных выражений, но мы будем применять preg_match_all, так как у нас выборка состоит из массива элементов меню.
preg_match_all имеет 3 аргумента: 1 – шаблон, 2 – строка ( в нашем случае – html код страницы), 3 – массив с результатом выборки.
Открыв html код, можно увидеть, что все пункты правого меню помещены в html тег li с классом cat-item cat-item-19 – <li class=”cat-item cat-item-19″>
Регулярное выражение будет выглядеть следующим образом:
Если вывести переменную $res, получим такие элементы массива: 1 – результат поиска по всему шаблону; 2 – сам текст (шаблон в скобках).
Нам нужен 2й элемент массива (в нем содержится текст).
Перебираем массив и записываем его поэлементно в файл.
\n нужен для того, чтобы после добавления текста курсор становился с новой строки.
Флаг FILE_APPEND добавляет текст в конец файла.
Весь программный код выглядит следующим образом:
Автор: Евгений Морковин
0 комментариев