Привет, замечательный 😎 читатель, сегодня в этой статье я научу тебя, как создать простой и удивительный парсер с помощью Node.js. Так пусть идет.

Итак, сначала настройте среду разработки вашего узла, если нет. Если у вас уже есть поздравление 🎉, вы готовы перейти к следующему шагу…

Просто погрузитесь в технические👨‍💻 вещи…

Во-первых, нам потребуются некоторые пакеты.

После прочтения названия этих пакетов у вас определенно возникнет вопрос, для чего эти пакеты используются, поэтому я дам вам простые и точные определения.

Axios — HTTP-клиент на основе Promise для браузера и node.js.

Cheerio — быстрая, гибкая и экономичная реализация ядра jQuery, разработанная специально для сервера.

Итак, давайте начнем с реальной сделки…

Откройте любой предпочтительный редактор/IDE. Я использую Visual Studio Code, потому что им легко пользоваться, вот почему…

В редакторе откройте терминал и введите команду-

npm init

После этого вы увидите, что будет создан файл package.json, в котором будет храниться вся ваша конфигурация этих пакетов и их версия. Я не буду углубляться в этот файл пакета слишком глубоко, это для другой статьи.

Откройте файл Package.json, там вы видите объект скрипта с фигурными скобками. Что-то вроде этого

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  }

В объекте Script измените объект, чтобы запустить объект, подобный этому

"scripts": {
    "start": "nodemon index.js"
  }

Прочитав это вы спросите, зачем я это добавляю и что будет?

Итак, после добавления этого вы можете запустить файл index.js

Если есть ошибка nodemon, которую вы обнаружите, попробуйте сначала установить ее, а затем попробуйте запустить

npm i nodemon

После этого создайте файл javascript index.js и приступим к написанию кода.

Сначала установите пакеты. Axios и cheerio с помощью следующей команды: -

npm i axios
npm i cheerio

После установки пакетов сначала импортируйте пакеты, используя const

const axios = require('axios')
const cheerio = require('cheerio')

и после этого создайте URL-адрес имени переменной, который содержит ссылку на веб-сайт, который вы хотите очистить. Я использую Новости The Guardians для этого урока.

Используя Axios, мы извлекаем эти данные из URL-адреса.

const url ='https://www.theguardian.com/uk'
axios(url)
    .then(response =>{
        const html = response.data
        const ele =cheerio.load(html)
        const article =[]

и, используя cheerio, мы манипулируем нужным типом данных, и мы создали переменную ele, которая содержит данные, и массив, содержащий список данных, которые мы извлекаем из URL-адреса.

Мы используем созданную нами переменную ele, содержащую данные

ele('.fc-item__title', html).each(function(){
           const title = ele(this).text()
           const url = ele(this).find('a').attr('href')
            article.push({
                title,
                url
            })
        })
       console.log(article)

Во-первых, посетите веб-сайт, потому что вы должны знать, какой тип данных вам нужен, поэтому вы увидите списки статей, выберите любую статью, проверьте элемент и найдите это имя div из инструмента разработчика.

Хотя я наконец узнал имя div. это вы уже можете видеть в коде, который был .fc-item__title, и мы используем каждую функцию для итерации сбора данных.

Там вы видите две переменные, которые содержат заголовок и URL-адрес, после этой строки вы видите их, есть функция push, которую мы используем в статье из предыдущего кода, вы помните, что мы создали массив статьи, который содержит этот список массива. Таким образом, мы отправляем заголовок и URL-адрес статьи, содержащей эти извлеченные данные. а внизу вы видите console.log() для вывода данных.

Полный код, если вы застряли ❤

const axios = require('axios')
const cheerio = require('cheerio')
const url ='https://www.theguardian.com/uk'
axios(url)
    .then(response =>{
        const html = response.data
        const ele =cheerio.load(html)
        const article =[]

        ele('.fc-item__title', html).each(function(){
           const title = ele(this).text()
           const url = ele(this).find('a').attr('href')
            article.push({
                title,
                url
            })
        })
       console.log(article)
    }).catch(err=> console.log(err) )

Надеюсь, вы найдете эту статью полезной, и если она поможет вам, не стесняйтесь высказать свое мнение в поле для комментариев, также подпишитесь и поставьте лайк 👍