美文网首页Node必看技术贴
node 解决爬虫爬不到前端异步数据问题

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

作者: 半夏半暖半倾城灬 | 来源:发表于2021-11-03 12:25 被阅读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

    相关文章

      网友评论

        本文标题:node 解决爬虫爬不到前端异步数据问题

        本文链接:https://www.haomeiwen.com/subject/janqzltx.html