CoderCastrov logo
CoderCastrov
Парсер веб-страниц

Парсинг веб-страниц — отличный способ загрузить вашу базу данных

Парсинг веб-страниц — отличный способ загрузить вашу базу данных
просмотров
2 мин чтение
#Парсер веб-страниц
Table Of Content
    Web Scraping

    Недавно я работал над проектом, связанным с едой. Мне понадобился список ингредиентов и блюд. Мой первый подход был зайти на 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 простых шага:

    Шаг 1
    1. Количество страниц для каждой категории ингредиентов. a. Ингредиенты в категории разделены на страницы. Нам нужно найти количество страниц, чтобы получить все ингредиенты. b. Нам нужно получить все элементы с классом "pagination".

    2. Получение элементов в каждой категории. a. У каждой категории есть список ингредиентов, которые расположены на страницах. URL страницы имеет формат "https://food.ndtv.com/ingredient/{категория}/page-{номер_страницы}" b. Пройдитесь по всем страницам и получите список ингредиентов. c. Найдите уникальный путь к элементу так же, как раньше.

    Заключение

    Я смог получить около 400 ингредиентов со ссылками и изображениями, используя этот небольшой кусок кода. Аналогично я собрал все (около 2000) блюда, присутствующие на сайте, для своего проекта, связанного с едой.