Какую альтернативу можно использовать вместо require, чтобы оно выполнялось в браузере?

Как изменить использование require в константах axios и cheerio, чтобы код продолжал работать?

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

const parse = async () => {
    const getHTML = async (url) => {
        const { data } = await axios.get(url);
        return cheerio.load(data);
    };

    const $ = await getHTML("https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585");
    const pageNumber = parseInt($('a.pagination__link').eq(-1).text());

    for (let i = 1; i <= pageNumber; i++) {
        const selector = await getHTML(
            `https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585&page=${i}`
        );
        selector('.catalog-grid__cell').each((index, element) => {
            const title = selector(element).find('.goods-tile__title').text();
            console.log(title, link);
        });
    }
};

parse();
  • 31 октября 2023 г. 8:12
Ответы на вопрос 2
Для использования модулей вместо require в браузере, можно использовать инструменты сборки, такие как Babel, Webpack или Browserify.

Чтобы изменить использование require в константах axios и cheerio для работы в браузере, можно использовать их ES модули. 

Вместо строки require('axios'), вы можете использовать import axios from 'axios'.
Аналогично, вместо строки require('cheerio'), вы можете использовать import cheerio from 'cheerio'.

Итоговый код будет выглядеть следующим образом:

import axios from 'axios';
import cheerio from 'cheerio';

const parse = async () => {
    const getHTML = async (url) => {
        const { data } = await axios.get(url);
        return cheerio.load(data);
    };

    const $ = await getHTML("https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585");
    const pageNumber = parseInt($('a.pagination__link').eq(-1).text());

    for (let i = 1; i <= pageNumber; i++) {
        const selector = await getHTML(
            `https://rozetka.com.ua/search/?text=%D0%B7%D0%B0%D1%80%D1%8F%D0%B4%D0%BD%D0%B0+%D1%81%D1%82%D0%B0%D0%BD%D1%86%D1%96%D1%8F&section_id=4674585&page=${i}`
        );
        selector('.catalog-grid__cell').each((index, element) => {
            const title = selector(element).find('.goods-tile__title').text();
            console.log(title, link);
        });
    }
};

parse();



Библиотеки должны быть загружены раньше Вашего скрипта.
Похожие вопросы