Не находит html элемент (cheerio)
Вообщем, хочу получить элемент по классу, но постоянно возвращает null или undefined. Хотя некоторые элементы jquery все-таки находит, не понимаю в чем проблема, просто что-то оно находит, а что-то нет. Хотя код тот же самый, меняю название селектора и все, jquery уже не может найти этот элемент.
const rp = require("request-promise");
const $ = require("cheerio");
const url = "https://www.youtube.com/watch?v=j3hyB5rO_cM";
rp(url)
.then(function (html) {
console.log($("#player", html).attr("class")); // возвращает skeleton flexy
console.log($(".skeleton.flexy", html).attr("id")); // возвращает player
console.log($("#img", html).attr("class")); // возвращает undefined
console.log($(".html5-video-container").html());// возвращает null
})
.catch(function (err) {
//handle error
});
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Ваши селекторы возвращают Вам не единственный элемент, а коллекцию.
Что бы получить доступ до свойств конкретного элемента:
$(".html5-video-container").eq(0).html()
// метод .eq(0) возврашает элемент массива с нулевым индексом
Что бы получить свойство/HTML для каждого из элементов коллекции:
$(".html5-video-container").forEach(el => console.log(el.innerHTML))
Если описанное Выше не помогло, то проверьте что Вы получаете в консоли:
console.log($(".html5-video-container"))


