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('Запрос отправлен, ожидаем ответ...');
});