Node JS 使用 Cheerio 抓取 youtube 视频
Node JS Use Cheerio to scrape a youtube video
我正在尝试开发一个系统node.js,每 60 秒 更新视频标题的观看次数。现在,我正在尝试获取观看次数,然后我会完成剩下的工作。我在使用 Cheerio API 时遇到了问题。然后我使用这样的页面源进行响应:
console.log("Strumento avviato!")
//TODO: get views number with scraping
const urlV = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const axios = require("axios").default;
const cheerio = require('cheerio');
const request = require('request');
request({
method: 'GET',
url: urlV
}, (err, res, body) => {
let $ = cheerio.load(body);
let views = $('.view-count style-scope ytd-video-view-count-renderer');
console.log(views.text());
})
包含观看次数的标签如下:
问题是,通过这样做,return null:
let $ = cheerio.load(body);
let views = $('.view-count style-scope ytd-video-view-count-renderer');
console.log(views.text());
两个空白行作为控制台输出:
我怎样才能提取观看次数?
请不要抓取 DOM 来获取观看次数。您可以使用 Youtube API 获取统计信息并仅解析 json 它 returns.
我测试了以下方法,有效:
var options = {
method: 'GET',
json: true,
url: 'https://www.googleapis.com/youtube/v3/videos',
headers: {
'Referer': 'YOUR DOMAIN URL'
},
qs: {
part: 'statistics',
id: 'dQw4w9WgXcQ',
key: 'YOUR API KEY'
}
};
request(options, function(err, res, body){
console.log(body.items[0].statistics.viewCount);
});
您可以通过关注 these instructions 获得 Youtube API 的 API 密钥。您可以将 Referer 域设置为例如http://localhost 如果你是 运行 这个本地实例或者你控制的任何域。只需将 YOUR DOMAIN URL 替换为 http://localhost 或其他内容,然后将 YOUR API KEY 替换为 API 键 Google 即可。
我正在尝试开发一个系统node.js,每 60 秒 更新视频标题的观看次数。现在,我正在尝试获取观看次数,然后我会完成剩下的工作。我在使用 Cheerio API 时遇到了问题。然后我使用这样的页面源进行响应:
console.log("Strumento avviato!")
//TODO: get views number with scraping
const urlV = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const axios = require("axios").default;
const cheerio = require('cheerio');
const request = require('request');
request({
method: 'GET',
url: urlV
}, (err, res, body) => {
let $ = cheerio.load(body);
let views = $('.view-count style-scope ytd-video-view-count-renderer');
console.log(views.text());
})
包含观看次数的标签如下:
问题是,通过这样做,return null:
let $ = cheerio.load(body);
let views = $('.view-count style-scope ytd-video-view-count-renderer');
console.log(views.text());
两个空白行作为控制台输出:
我怎样才能提取观看次数?
请不要抓取 DOM 来获取观看次数。您可以使用 Youtube API 获取统计信息并仅解析 json 它 returns.
我测试了以下方法,有效:
var options = {
method: 'GET',
json: true,
url: 'https://www.googleapis.com/youtube/v3/videos',
headers: {
'Referer': 'YOUR DOMAIN URL'
},
qs: {
part: 'statistics',
id: 'dQw4w9WgXcQ',
key: 'YOUR API KEY'
}
};
request(options, function(err, res, body){
console.log(body.items[0].statistics.viewCount);
});
您可以通过关注 these instructions 获得 Youtube API 的 API 密钥。您可以将 Referer 域设置为例如http://localhost 如果你是 运行 这个本地实例或者你控制的任何域。只需将 YOUR DOMAIN URL 替换为 http://localhost 或其他内容,然后将 YOUR API KEY 替换为 API 键 Google 即可。