CoderCastrov logo
CoderCastrov
Реакт

Парсинг динамических и статических веб-сайтов на Node.js и React.js

Парсинг динамических и статических веб-сайтов на Node.js и React.js
просмотров
1 мин чтение
#Реакт

Парсинг веб-сайтов - это техника извлечения данных с веб-сайтов. И фрагмент кода или программное обеспечение, которое помогает вам собирать данные, известно как парсер.

Различные способы парсинга включают обычное копирование и вставку, сопоставление текстовых шаблонов, программирование HTTP, парсинг HTML, парсинг DOM, вертикальная агрегация, распознавание семантических аннотаций и анализ веб-страниц с помощью компьютерного зрения.

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

Мы можем создавать парсеры на языках программирования, таких как JavaScript, Python, Java, Php, Golang и т. д. В этой статье мы будем использовать JavaScript как на Node.js, так и на React.js.

Пример кода для парсинга статических веб-сайтов

Сначала нам понадобится установить Axios и Cheerio в нашу среду Node.js -

Установка Cheerio -

npm install cheerio

Установка Axios -

# Используя npm:
npm install axios# Используя bower:
bower install axios# Используя yarn:
yarn add axios

Вот полный код -

Scraper.js

import { useState } from "react";

const Scrapper = () => {
  const cheerio = require("cheerio");
  const axios = require("axios");
  const [data, setData] = useState([]);
  const links = [];
  axios.get("https://akashmittal.com/").then((urlResponse) => {
    const $ = cheerio.load(urlResponse.data);

    $("div.cs-homepage-category").each((i, element) => {
      const link = $(element).find("a.cs-overlay-link").attr("href");
      links.push(link);
    });
    // console.log(links)
    setData(links);
  });
  return (
    <ul>
      {data.map((read) => {
        return (
          <li>
            <a href={read}>{read} </a>
          </li>
        );
      })}
    </ul>
  );
};
export default Scrapper;

Прочитайте полное руководство на akashmittal.com