Чем заменить require чтобы оно работало в браузере?

Ссылка скопирована
1 ответ

Чем заменить 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) => { // Виправлено параметри функції each             const title = selector(element).find('.goods-tile__title').text();             console.log(title, link); // Додано вивід посилання         });     } };  parse();

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) => { // Виправлено параметри функції each const title = selector(element).find('.goods-tile__title').text(); console.log(title, link); // Додано вивід посилання }); } }; parse();

Дополнительно:

Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
См.п.3.1 Регламента.

  • Судя по коду вы тут нагло просите сайт розетки. В браузере это в любом случае не сработает.
  • Если под "браузером" понимается html страница, то вместо require - подключите библиотеки в html, например:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/1.6.0/axios.min.js" integrity="sha512-WrdC3CE9vf1nBf58JHepuWT4x24uTacky9fuzw2g/3L9JkihgwZ6Cfv+JGTtNyosOhEmttMtEZ6H3qJWfI7gIQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cheerio/0.22.0/index.js" integrity="sha512-+obmGUxyA+OfXW4RU7Ez2JBbCFy+dmZatW/Z5u/PDZlY+SKzAMSHzpNfTDohw7RFfW+zmLrI9h19XiODWZRO5A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>  <script> 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) => { // Виправлено параметри функції each             const title = selector(element).find('.goods-tile__title').text();             console.log(title, link); // Додано вивід посилання         });     } };  parse(); </script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/1.6.0/axios.min.js" integrity="sha512-WrdC3CE9vf1nBf58JHepuWT4x24uTacky9fuzw2g/3L9JkihgwZ6Cfv+JGTtNyosOhEmttMtEZ6H3qJWfI7gIQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cheerio/0.22.0/index.js" integrity="sha512-+obmGUxyA+OfXW4RU7Ez2JBbCFy+dmZatW/Z5u/PDZlY+SKzAMSHzpNfTDohw7RFfW+zmLrI9h19XiODWZRO5A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script> 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) => { // Виправлено параметри функції each const title = selector(element).find('.goods-tile__title').text(); console.log(title, link); // Додано вивід посилання }); } }; parse(); </script>

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

    • Вылазят дополнительные ошибки

      Чем заменить require чтобы оно работало в браузере?

    • Yoler, Обратите внимание только на первую. Со второй это моя работа
    • Yoler, у вас же "require" остался.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Андрей PHP Ответ

    Для того чтобы использовать функционал, аналогичный require в браузере, можно воспользоваться технологией AJAX (Asynchronous JavaScript and XML). AJAX позволяет обмениваться данными между сервером и браузером без перезагрузки страницы.

    Для решения данной проблемы можно использовать следующий подход:

    1. Создать файл на сервере, содержащий необходимый PHP код, который вы хотите загрузить в браузере.

    2. Написать скрипт на стороне клиента (JavaScript), который будет отправлять запрос на сервер и получать содержимое файла с PHP кодом.

    Пример скрипта на стороне клиента:

    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'your_php_file.php', true);
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4 && xhr.status === 200) {
        var phpCode = xhr.responseText;
        // Дальнейшая обработка полученного PHP кода
      }
    };
    xhr.send();

    var xhr = new XMLHttpRequest(); xhr.open('GET', 'your_php_file.php', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var phpCode = xhr.responseText; // Дальнейшая обработка полученного PHP кода } }; xhr.send();

    3. В обработчике полученного PHP кода (вместо комментария "// Дальнейшая обработка полученного PHP кода") можно выполнить нужные действия с полученным кодом, например, вставить его в определенный элемент на странице.

    Этот подход позволяет загружать и выполнять PHP код на стороне клиента, в браузере, при помощи AJAX запросов. Однако, стоит помнить о безопасности и правильном обращении с данными, которые передаются между сервером и клиентом.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно