Node必看技术贴

node 解决爬虫爬不到前端异步数据问题

2021-11-03  本文已影响0人  半夏半暖半倾城灬

原因:爬虫能直接爬到页面渲染内容,对于渲染完毕通过浏览器JS重新请求数据创建的内容,并不能拿到。

解决:虚拟一个浏览器,等待页面数据完全加载完毕,再获取页面内容。使用到的三方库:puppeteer(谷歌浏览器官方组件)、cheerio(最流行的h5标签元素解析组件),具体代码如下,需要自取:

     var cheerio = require('cheerio');

      var url = 'https://xxx.com/xxx';

      const puppeteer = require('puppeteer');//github传送门 官网传送门

      const browser = await puppeteer.launch({args: ['--no-sandbox']});

      const page = await browser.newPage();

      await page.goto(url);

      setTimeout(async function(){

          const bodyHandle = await page.$('body');

          const html = await page.evaluate(body => body.innerHTML, bodyHandle)

          let $ = cheerio.load(html)

          $('.content_item').each( function(i, el) {

            var title = $(el).find('.item_key').text();

            console.log(title);

          });

          await bodyHandle.dispose();

          await browser.close();

      },500);

centos系统使用报错解决:https://www.jianshu.com/p/ba616ca1c7c2

上一篇下一篇

猜你喜欢

热点阅读