Простой, но мощный инструмент для любого веб-разработчика!

Итак, вам нужны некоторые данные. Вы искали его и нашли в Интернете. Но это не то, что вы можете просто скопировать и вставить, потому что, возможно, вы хотите сохранить это где-то (может быть, в базе данных или в формате 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