Чем заменить 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) => { // Виправлено параметри функції 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>
Библиотеки должны быть загружены раньше Вашего скрипта.
- Вылазят дополнительные ошибки
- Yoler, Обратите внимание только на первую. Со второй это моя работа
- Yoler, у вас же "require" остался.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для того чтобы использовать функционал, аналогичный 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();
3. В обработчике полученного PHP кода (вместо комментария "// Дальнейшая обработка полученного PHP кода") можно выполнить нужные действия с полученным кодом, например, вставить его в определенный элемент на странице.
Этот подход позволяет загружать и выполнять PHP код на стороне клиента, в браузере, при помощи AJAX запросов. Однако, стоит помнить о безопасности и правильном обращении с данными, которые передаются между сервером и клиентом.