Делаем парсер страниц на Node.js
В этой статье мы сделаем парсер сайтов Node.js, или просто на JavaScript, думаю вам будет интересно.
Но стоит предупредить, что по сути это будет перевод другой статьи, ссылка на оригинал в ссылке внизу.
Ещё мы уже делали парсеры страниц но на других языках программирования, вот они:
Подготовка проекта:
У вас должен быть установлен Node.JS, если не знаете как это сделать, то почитайте эти статьи:
Теперь нужно подготовить проект, для этого создайте папку где будет храниться его, вписываем эту команду:
То есть таким образом мы инициализировали проект, теперь скачаем все нужные библиотеки, через команду npm .
На этом подготовка закончена
Пишем парсер на javascript:
Сначала мы будем начинать с более простого примера, и постепенно всё сложнее и солжне.
Берем HTML страницу:
Давайте для примера получим страницу со американскими президентами из Википедии, откроем для этого текстовой редактор и напишем функцию для получения HTML-кода.
В терминале у нас должно появиться весь HTML документ.
Использование Chrome DevTools:
Круто, мы получили необработанный HTML с веб-страницы! Но теперь нам нужно разобраться в этом гигантском куске текста. Для этого нам нужно использовать Chrome DevTools, чтобы мы могли легко искать что нам нужно в HTML.
Использовать Chrome DevTools просто: просто откройте Google Chrome и щелкните правой кнопкой мыши на элемент, который вы хотите посмотреть (я щелкаю правой кнопкой мыши на Джорджа Вашингтона) :
Теперь просто нажмите кнопку «Посмотреть код», и Chrome откроет панель инструментов DevTools, позволяющую легко проверить исходный HTML-код страницы.
Парсим HTML с помощью Cheerio.js:
Замечательно, Chrome DevTools теперь показывает нам точный шаблон, который мы должны искать в коде (тег big с гиперссылкой внутри него).
Давайте воспользуемся Cheerio.js для синтаксического анализа полученного ранее HTML, чтобы вернуть список ссылок на отдельные страницы Википедии президентов США.