Обновление (не пытайтесь использовать этот подход):
Кажется, YouTube в настоящее время полагается на JS для отображения страницы, а cheerio
будет только извлекать статическую HTML-страницу и анализировать ее.Учетная запись подписчика, вероятно, извлекается после рендеринга страницы, а затем отображается на странице с помощью JS, что cheerio
не может сделать.Поэтому следующий подход не работает на этом конкретном веб-сайте.
Оригинал:
Получите страницу с помощью HTTP-запроса, а затем проанализируйте ее с помощью cheerio .Cheerio работает очень похоже на jQuery, если у вас есть опыт работы с ним - он просто анализирует HTML и позволяет вам использовать селекторы jQuery, чтобы получить нужный вам бит HTML.
Я также использовал request сделать HTTP-запрос для меня.
Ниже приведен приблизительный пример того, что вам может понадобиться.
var cheerio = require('cheerio');
var request = require('request');
// Replace "user_account" with the account name.
var url = "https://www.youtube.com/user/user_account";
request({
method: 'GET',
url: url
}, function (err, response, html) {
if (err) {
console.log(err);
return;
}
let $ = cheerio.load(html);
var subscribers = $('#subscriber-count').text();
// use subscribers...
});
Проблемы
YouTube может изменить страницу в любой момент.время, которое может привести к тому, что код не будет работать, так как это требует, чтобы страница была настроена определенным образом.