Задать вопрос

Как исправить ошибку при парсинге?

Есть такая конструкция
(async () => {
    try {
        const dom = await JSDOM.fromURL('https://www.kufar.by/l/r~minsk/zhivotnye?sort=lst.d');
        const d = dom.window.document;
        let linkAll = d.querySelectorAll('.kf-Yop-a43ab'); 
        linkAll.forEach(function(linkAll) { 
            let linkhref = ((linkAll.getAttribute('href')));
            console.log(linkhref);
            data.push({link: linkhref});
        });
        let imgAll = d.querySelectorAll('.kf-MPpg-8a381');
        imgAll.forEach(function(imgAll) { 
            let imgLink = ((imgAll.getAttribute('data-src')));
            data.push({img: imgLink});
        });
        let nameAll = d.querySelectorAll('.kf-Yovr-ffe0d');
        nameAll.forEach(function(nameAll) { 
            let nameText = nameAll.innerText;
            data.push({name: nameText});
        });
        let priceAll = d.querySelectorAll('.kf-YopJ-ded05');
        priceAll.forEach(function(priceAll) { 
            let priceText = priceAll.innerText;
            data.push({price: priceText});
        });
        if (data.length > 0) {
            console.log(JSON.stringify(data, null, ' '));
            console.log(data.length);
        }
    } catch (e) {
        console.log(e);
    }
})();


что касается запросов href/src - они работают
а вот текстовые узлы(где забираю innerhtml выдают андефаинд)
при этом если в браузере пытаюсь на странице такое же провернуть - работает, помогите пожалуйста, в чем проблема
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
asvici
@asvici Автор вопроса
надо было innerText заменить на textContent
вот так
let nameText = textContent;

let nameAll = d.querySelectorAll('.kf-Yovr-ffe0d');
nameAll.forEach(function(nameAll) {
let nameText = nameAll.innerText;
data.push({name: nameText});
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы