Простой, но мощный инструмент для любого веб-разработчика!
Итак, вам нужны некоторые данные. Вы искали его и нашли в Интернете. Но это не то, что вы можете просто скопировать и вставить, потому что, возможно, вы хотите сохранить это где-то (может быть, в базе данных или в формате JSON).
Но копировать-вставлять вручную скучно. Вы умный парень и любите все автоматизировать.
Ну, не говори больше! Инструмент, который вы ищете, это скрейпинг.
Что вообще такое скрапинг?
По данным сайта,
Веб-скрапинг — это автоматизированный процесс сбора структурированных веб-данных.
Да, это верно. Сегодня мы будем извлекать данные из раздела часто задаваемых вопросов этого веб-сайта.
Требования
Концепцию скрейпинга можно разбить на следующие этапы.
- Получите HTML-файл данных с веб-сайта (мы будем использовать
axios
) - Разобрать данные (мы будем использовать
cheerio
)
Вот и все! Так просто, да?
Инициализируйте свой проект
Давайте сначала инициализируем пустой проект Node.js. Перейдите в свой терминал и выполните следующие команды
mkdir web-scraper cd web-scraper npm init -y
Это создаст для вас файл package.json
.
Затем создайте наш корневой файл
touch index.js
Итак, у нас есть скелет проекта Node.js. Давайте использовать это!
Установите зависимости
Выполните следующую команду, чтобы получить необходимые зависимости
npm i axios cheerio
Откройте файл index.js
и импортируйте их.
const axios = require("axios"); const cheerio = require("cheerio");
Получить данные с сайта
Как мы обсуждали ранее, первое, что нужно сделать, это получить необработанные данные с веб-сайта. Это означает получение полного файла .html
. Мы можем сделать это следующим образом.
Обратите внимание на строку номер 5. Мы загрузили файл HTML в папку cheerio
. Поскольку cheerio очень похоже на Jquery
, мы используем $
в качестве имени переменной. Вы можете использовать что-то еще!.
Итак, теперь у нас есть данные в формате HTML.
Но как нам его разобрать?
Чтобы понять это, нам нужно перейти на этот веб-сайт и открыть инструмент проверки целевого веб-сайта. И попробуй там понять структуру HTML файла.
Cheerio имеет возможность выбирать на основе classname
или типа элемента (div, кнопка и т. д.). Мы постараемся найти место, где мы можем получить вопросы.
Получение вопросов
если мы внимательно посмотрим, вопросы находятся внутри button
, который живет внутри div
с classname = "row"
Это означает, что если мы получим все элементы div с classname="row"
, мы получим все часто задаваемые вопросы, и из них мы сможем извлечь вопросы.
Давайте сделаем это!
После этого зайдите в консоль и запустите
node index.js
и посмотри на свою консоль
Итак, вы удалили все вопросы с сайта. Теперь используйте его как хотите. Попробуйте разобраться, чтобы получить ответ самостоятельно.
Если вы не можете, вы можете понять логику, чтобы найти ответы, проверив полный код в следующем репо.
Вот и все на сегодня! Хорошего дня!
Свяжитесь со мной через LinkedIn