node.js - scraping - ¿Es posible raspar un sitio web React(Instagram) con Cheerio?
scrap node (1)
Estoy intentando eliminar Instagram (creado con React) con Node.js / Cheerio. La depuración del documento muestra un objeto devuelto, pero no se parece a la respuesta típica.
Supongo que esto tiene que ver con Reaccionar. ¿Hay alguna forma de evitar esto y sacar el DOM renderizado para analizar con Cheerio? ¿O me estoy perdiendo algo por completo?
Gracias por adelantado.
En el caso general, si el sitio web es optimizado para SEO, puede hacerlo falsificando la cadena del agente de usuario de un rastreador web. Esto devuelve un DOM renderizado que puede ser analizado por Cheerio.
En el caso específico, Instagram devuelve un DOM renderizado en sus sitios web móviles. Suplantar la cadena de agente de usuario de un teléfono móvil y puede analizar los datos que se devuelven.
var options = {
url: user.instagram_url,
headers: {
''User-Agent'': ''Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4''
}
};
request(options, function(error, response, html) {
if (!error) {
console.log(''Scraper running on Instagram user page.'');
// Use Cheerio to load the page.
var $ = cheerio.load(html);
// Code to parse the DOM here
}
}