así que estoy jugando con request y cheerio npm y parece que no puedo encontrar una solución, ¿por qué sigue dándome matrices vacías? Usé el mismo código cuando raspé reddit y funcionó de maravilla, pero cuando lo uso en YouTube o en cualquier otra página no funciona.
var request = require('request'), cheerio = require('cheerio'), fs = require('fs'), urls = []; request('https://www.youtube.com/', function(err,resp,body) { if(!err && resp.statusCode == 200) { var $ = cheerio.load(body); $('a.yt-simple-endpoint style-scope ytd-grid-video-renderer', 'primary').each(function() { var url = $(this); urls.push(url); });Y este es mi código de reddit (funciona bien)
var request = require('request'), cheerio = require('cheerio'), fs = require('fs'), urls = []; request('http://www.reddit.com/', function(err,resp,body) { if(!err && resp.statusCode == 200) { var $ = cheerio.load(body); $('a.title', '#siteTable').each(function() { var url = $(this).attr('href'); if(url.indexOf('imgur.com')!= -1) { urls.push(url); } }); Output Example: [ 'http://i.imgur.com/WVrmZ9j.gifv', 'http://i.imgur.com/T0BchYC.gifv', 'http://imgur.com/u59lzux' ]El HTML que carga Cheerio para YouTube es diferente.
Haz res.send($.html()); para verificar la estructura HTML y orientarla en consecuencia.