Парсинг веб-страниц — отличный способ загрузить вашу базу данных
Table Of Content
Недавно я работал над проектом, связанным с едой. Мне понадобился список ингредиентов и блюд. Мой первый подход был зайти на Google и ввести запрос "база данных продуктов". Были предложены несколько платных API. Также были предложены несколько веб-сайтов о еде. После посещения некоторых из них я увидел этот сайт https://food.ndtv.com/. На этом сайте были все данные, которые мне были нужны, но копирование данных заняло бы много времени, поэтому я решил сделать это с помощью кода. И вот здесь на сцену выходит парсинг веб-страниц. С помощью парсинга мы можем получить любые данные, которые есть в интернете. Однако неправильно парсить личные данные в интернете.
Парсинг веб-страниц, сбор данных с веб-страниц или извлечение данных с веб-страниц — это сбор данных с веб-сайтов. — Википедия
Мы можем делать парсинг веб-страниц на любом языке, даже используя консоль браузера. Я буду использовать Node.js, чтобы получить список ингредиентов с https://food.ndtv.com.
Предварительные требования 1. Установите Node.js на вашу систему 2. Предварительное знание синтаксиса JS ES6
Настройка Мы будем использовать три пакета npm:
mkdir Ndtv-Ingredients-Scraping
cd Ndtv-Ingredients-Scraping
npm init -y
npm i cheerio request-promise request ramda
Реализация
Я реализовал это в 3 простых шага:
-
Количество страниц для каждой категории ингредиентов. a. Ингредиенты в категории разделены на страницы. Нам нужно найти количество страниц, чтобы получить все ингредиенты. b. Нам нужно получить все элементы с классом "pagination".
-
Получение элементов в каждой категории. a. У каждой категории есть список ингредиентов, которые расположены на страницах. URL страницы имеет формат "https://food.ndtv.com/ingredient/{категория}/page-{номер_страницы}" b. Пройдитесь по всем страницам и получите список ингредиентов. c. Найдите уникальный путь к элементу так же, как раньше.
Заключение
Я смог получить около 400 ингредиентов со ссылками и изображениями, используя этот небольшой кусок кода. Аналогично я собрал все (около 2000) блюда, присутствующие на сайте, для своего проекта, связанного с едой.