Cheerio有可能把React网站(Instagram)刮掉吗?

我试图用Node.js / Cheerio来刮掉Instagram(使用React构build)。 debugging文档显示一个对象返回,但它看起来不像典型的响应。

我猜这与React有关。 有没有办法解决这个问题,并拉动渲染的DOMparsing与Cheerio? 还是我完全错过了一些东西?

提前致谢。

在一般情况下 – 如果网站是SEO友好的,您可以通过欺骗networking爬虫的用户代理string来实现。 这会返回一个可以被Cheerioparsing的渲染DOM。

在具体的情况下 – Instagram在其移动网站上返回一个渲染的DOM。 欺骗手机的用户代理string,您可以parsing返回的数据。

  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 } }