Estoy tratando de raspar algunos sitios web para practicar, estos sitios web son sitios renderizados en javascript, así que estoy usando pesadillas para rasparlos. Estaba funcionando sin problemas hasta que una vez comenzó a darme una URL de blob en lugar de una URL .mp4 real, busqué en la actividad de red de las herramientas de desarrollo de Chrome, veo que el archivo .m3u8 se está cargando, pero en src muestra la URL del blob en lugar de .m3u8.
Por favor, sugiérame qué cambios debo hacer.
Aquí está mi ejemplo de código,
app.get("/video/:VideoName", function(req,res){ var VideoName = req.params.VideoName; request("https://sample.com/videos/"+VideoName, function(err, response, html){ if(!err && response.statusCode == 200){ const $ = cheerio.load(html); const videoInfo = $(".video-info"); //fetch video link if not already avilable const includesVideo = VidLinks.find(e => e.name == VideoName) if (includesVideo) { res.render("videoPlayer",{episode: includesVideo}); } else { const Nightmare = require('nightmare') const nightmare = Nightmare({ show: true }) var iframeLink = videoInfo.find("iframe").attr("src"); iframeLink = iframeLink.replace(/\/\//g, "https://"); const videoLink = nightmare .goto(iframeLink) .click("#myVideo") .evaluate(function(){ //return html return document.body.innerHTML; }).end().then(function(body){ //loading html body to cheerio var $ = cheerio.load(body); const videoLink = $("#myVideo").find("video").attr("src"); console.log("is this video link? " + videoLink); return videoLink; }).then(function(videoLink){ VidLinks.push(videoLink); res.render("videoPlayer",{video: videoLink}); }); }; } else { res.send("500 Error, Try Again."); console.log("ERROR IS HERE! - "+err); } }); })