Php парсинг html, за допомогою simple html dom

Просто дотримуйтесь кроків статті, і дізнаєтесь багато нового і корисного для себе!

Крок 1 - Підготовка

Для початку, вам необхідно завантажити копію simple HTML dom бібліотеки. Завантаження вільно.

В архіві ви знайдете кілька файлів, але нам необхідний тільки один - simple_html_dom.php. Всі інші, це приклади і документація.

Крок 2 - Основи HTML парсинга

Ця бібліотека, дуже проста у використанні, але все ж, необхідно розібрати деякі основи, перед тим як її використовувати.

Завантаження HTML

Отримання доступу до HTML DOM об'єктів


Припустимо у нас вже є DOM об'єкт, структурою, як на картинці вище. Ви можете почати працювати з ним, використовуючи метод find (), і створюючи колекції. Колекції - це групи об'єктів, знайдені за допомогою селекторів - синтаксис в чомусь схожий з jQuery.

Використовуючи цей приклад HTML коду, ми дізнаємося, як отримати доступ до інформації укладеної в другому параграфі (p). Також, ми змінимо отриману інформацію і виведемо результат на дисплей.

Як бачите реалізувати PHP парсинг документа HTML, дуже навіть просто, використовуючи simple HTML DOM бібліотеку. В принципі, в цьому шматку PHP коду, все можна зрозуміти інтуїтивно, але якщо ви в чомусь сумніваєтеся, ми розглянемо код.

Лінія 2-4. підключаємо бібліотеку, створюємо об'єкт класу і завантажуємо HTML код з рядка.

Лінія 7: За допомогою цього рядка, знаходимо все

теги в HTML коді, і зберігаємо в змінній у вигляді масиву. Перший параграф буде мати індекс 0, інші параграфи будуть індексовані відповідно 1,2,3 ...

Лінія 10: Отримуємо вміст другого параграфа в нашій колекції. Його індекс буде 1. Також ми вносимо зміни в текст за допомогою атрибута innertext. Атрибут innertext, змінює весь вміст всередині зазначеного тега. Також ми зможемо змінити сам тег за допомогою атрибута outertext.

Давайте додамо ще один рядок PHP коду, за допомогою якої ми призначимо клас стилю нашому параграфу.

Результатом виконання нашого коду буде наступний HTML документ:

інші селектори

Нижче наведені інші приклади селектор. Якщо ви використовували jQuery, то в бібліотеці simple html dom синтаксис трошки схожий.

Документація бібліотеки simple HTML DOM

Просто надам вам ілюстрацію, яка показує можливі властивості обраного HTML DOM елементу.

Php парсинг html, за допомогою simple html dom

Крок 3 - Реальний приклад PHP парсинга HTML документа

Php парсинг html, за допомогою simple html dom

Крок 4 - Пишемо основну функцію PHP парсеру HTML

Спочатку функції, ми викликаємо наш глобальний масив, який ми вказали раніше. Створюємо новий об'єкт simple_html_dom. Далі завантажуємо сторінку, яку будемо аналізувати довільні.

Крок 5 - Знаходимо потрібну інформацію

У цьому шматку коду все гранично просто, ми знаходимо все div з class = name_material. Далі Новомосковськ колекцію елементів і вибираємо назви матеріалів. Всі матеріали будуть збережені в масиві в даному виді:

Крок 6 - Виводимо результат парсинга

Для початку, ми встановимо деякі стилі, для краси виведеної інформації, яку отримали при парсінгу.

Далі, за допомогою кількох рядків PHP коду, ми виведемо інформацію.

Результатом виконання даного скрипта, буде список назв статей на сайті sitear.ru.

висновок

Ось ми і навчилися php парсингу html документів. Пам'ятайте, що парсинг це довгий процес. Одна сторінка може Парс близько однієї секунди. Якщо ви будете робити парсинг великого числа HTML документів, ваш сервер може перервати роботу скрипта в зв'язку із закінченням час відведеного для виконання. Це можна виправити за допомогою функції set_time_limit (240); 240 - це час в секундах, відведений на виконання скрипта.