node爬虫学习之puppeteer

之前用了cheerio ,selenium    superagent  貌似都没有这次的这个厉害   这次就找了一个能获取js动态生成的元素的模块puppeteer  模块 ,附带一下我查api的网站:

https://zhaoqize.github.io/puppeteer-api-zh_CN/#?product=Puppeteer&version=v1.11.0&show=api-class-page

这个还能获取iframe   里面的,废话不多说 ,直接上我写的简单例子吧(简单的获取网易云音乐评论):

index.js

const puppeteer = require('puppeteer');
(async () => {
    let url = 'https://music.163.com/#/song?id=1338695683';
    let browser = await puppeteer.launch();
    let page = await browser.newPage();

    await page.goto(url);
    // 获取歌单的iframe
    let iframe = await page.frames().find(f => f.name() === 'contentFrame');
    let data = await iframe.evaluate(function () {
        let list_n = document.querySelectorAll('.cmmts .itm .cnt a');
        let list_d = document.querySelectorAll('.cmmts .itm .cnt');
        let list_i = document.querySelectorAll('.cmmts .itm .head img');
        let data = [];
        for (let i = 0; i < list_n.length; i++) {
            let name = list_n[i].innerText;
            let icon = list_i[i].getAttribute('src');
            data.push({
                icon:icon.replace(/\/\r\n/g,'').trim(),
                name: name.trim(),
                desc: list_d[i].innerText.replace(name+':',' ').replace(/\/\r\n/g,'').trim(),
            })
        }
        return data;
    });
    console.log('data', data);
})();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值