Мы используем файлы cookie, чтобы обеспечить наилучшее взаимодействие с сайтом
Больше не показывать
document.addEventListener('DOMContentLoaded', function() { console.log('DOM загружен, начинаем парсинг цены с Ozon...'); // URL страницы Ozon const ozonUrl = 'https://www.ozon.ru/product/nastolnye-igry-zhiznennye-vybory-i-zhiznennye-vybory-2-dlya-kompaniy-s-voprosami-3099000483/'; const proxyUrl = 'https://api.allorigins.win/get?url=' + encodeURIComponent(ozonUrl); console.log('Используем прокси URL:', proxyUrl); fetch(proxyUrl) .then(response => { console.log('Получен ответ от прокси:', response.status, response.statusText); return response.json(); }) .then(data => { console.log('Данные получены:', data); if (!data || !data.contents) { console.error('Ошибка: нет содержимого в ответе'); return; } console.log('Длина HTML:', data.contents.length, 'символов'); // Создаем временный элемент для парсинга const parser = new DOMParser(); const doc = parser.parseFromString(data.contents, 'text/html'); console.log('DOM создан, ищем элементы...'); // Проверяем разные селекторы для цены const priceElement1 = doc.querySelector('.pdp_bg4.tsHeadline500Medium'); const priceElement2 = doc.querySelector('[data-widget="webPrice"]'); const priceElement3 = doc.querySelector('.c3-a1'); const priceElement4 = doc.querySelector('.c2h5q'); const priceElement5 = doc.querySelector('[data-widget="webCurrentPrice"]'); const priceElement6 = doc.querySelector('.vn9d'); const priceElement7 = doc.querySelector('[data-widget="webPrice"] span'); console.log('Результаты поиска:'); console.log('1. .pdp_bg4.tsHeadline500Medium:', priceElement1); console.log('2. [data-widget="webPrice"]:', priceElement2); console.log('3. .c3-a1:', priceElement3); console.log('4. .c2h5q:', priceElement4); console.log('5. [data-widget="webCurrentPrice"]:', priceElement5); console.log('6. .vn9d:', priceElement6); console.log('7. [data-widget="webPrice"] span:', priceElement7); // Пытаемся найти любой элемент с ценой const priceElement = priceElement1 || priceElement2 || priceElement3 || priceElement4 || priceElement5 || priceElement6 || priceElement7; if (priceElement) { const price = priceElement.textContent.trim(); console.log('Найдена цена:', price); console.log('HTML элемента:', priceElement.outerHTML); // Обновляем элемент на странице const target = document.querySelector('.ozon-price'); if (target) { console.log('Найден элемент .ozon-price, обновляем текст...'); target.textContent = price; console.log('Цена обновлена успешно!'); } else { console.error('Ошибка: не найден элемент .ozon-price на странице'); // Проверим, какие элементы с классом есть console.log('Все элементы с классом ozon-price:', document.querySelectorAll('.ozon-price')); } } else { console.error('Ошибка: не найден элемент с ценой на странице Ozon'); // Давайте посмотрим структуру документа для отладки console.log('Первые 5000 символов HTML для отладки:', data.contents.substring(0, 5000)); // Поищем все span элементы для анализа const allSpans = doc.querySelectorAll('span'); console.log('Всего span элементов:', allSpans.length); // Поищем элементы с цифрами (ценами) const priceElements = Array.from(allSpans).filter(span => { const text = span.textContent.trim(); return text.includes('₽') || text.includes('руб') || /\d[\s\d]*\d/.test(text); }); console.log('Возможные элементы с ценами:', priceElements.slice(0, 10)); } }) .catch(error => { console.error('Ошибка при получении цены:', error); console.error('Тип ошибки:', error.name); console.error('Сообщение ошибки:', error.message); console.error('Стек ошибки:', error.stack); }); console.log('Запрос отправлен, ожидаем ответ...'); });
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing