JavaScript:
Розбір HTML
Як:
Давайте спарсимо HTML використовуючи API DOMParser
в JavaScript.
const parser = new DOMParser();
const htmlString = `<p>Hello, world!</p>`;
const doc = parser.parseFromString(htmlString, 'text/html');
console.log(doc.body.textContent); // Вивід: Hello, world!
Тепер давайте заберемо щось більш конкретне, як-от елемент з класом:
const htmlString = `<div><p class="greeting">Hello, again!</p></div>`;
const doc = parser.parseFromString(htmlString, 'text/html');
const greeting = doc.querySelector('.greeting').textContent;
console.log(greeting); // Вивід: Hello, again!
Поглиблено
Парсинг HTML є старим як веб. Спочатку це було справою браузерів — браузери парсили HTML для відображення веб-сторінок. З часом програмісти захотіли долучитися до цього процесу, що призвело до появи API, таких як DOMParser
.
Альтернативи? Звичайно. У нас є бібліотеки на кшталт jQuery
та інструменти на кшталт BeautifulSoup
для Python. Але нативний DOMParser
в JavaScript швидкий і вбудований, тому немає потреби в додаткових бібліотеках.
З точки зору реалізації, коли ви парсите HTML з DOMParser
, це створює об’єкт Document
. Думайте про це як про ієрархічну модель вашого HTML. Як тільки ви її отримаєте, ви можете навігувати та маніпулювати нею так само, як і з DOM звичайної веб-сторінки.
Ось що—парсинг може заплутатися на некоректному HTML. Браузери прощають, але DOMParser
може і не пробачити. Отже, для складних завдань або заплутаного HTML сторонні бібліотеки можуть зробити кращу роботу з очистки.
Дивіться також
- MDN Web Docs про API
DOMParser
: MDN DOMParser - Відомості про парсинг в jQuery: jQuery.parseHTML()
- Cheerio, швидка, гнучка та лаконічна реалізація основи jQuery для сервера: Cheerio.js
- Для нон-JS парсингу: бібліотека BeautifulSoup Python: Beautiful Soup