puppeteer爬取数据实例

实例1:

const pptr=require('puppeteer-core');
const findChrome =require('chrome-finder');
const chromePath=findChrome();

const main=async()=>{

    const browser = await pptr.launch({
        headless:false, //无头模式(后台运行模式),默认为true,为true时不显示浏览器
        executablePath:chromePath, //谷歌浏览器exe文件的路径
        defaultViewport:{           //设置页面可视区域的大小
            width:1920,
            height:1080
        } 
    });

    const homePage=await browser.newPage();
    await homePage.goto('https://car.autohome.com.cn/');

    const getBrandList=async ()=>{
    let brandList= await homePage.$$eval('#cartree li' ,(doms)=>{
            console.log('doms的数量:',doms.length);
            console.log('第一个dom的文本内容:',doms[0].innerText);

            let brands=[];
            //遍历dom数组,获取列表内容
            doms.forEach((item) => {
                let brand = item.innerText.split('(')[0];
                brands.push({brand});
            });

            //返回的内容会交回给node.js环境
            return brands;   
        });
        console.log('浏览器返回的内容:',brandList);
    }
    await getBrandList();
}

main();

实例2:
 

const pptr=require('puppeteer-core');
const findChrome =require('chrome-finder');
const chromePath=findChrome();


const main= async()=>{
    const browser = await pptr.launch({
        headless:false, //无头模式(后台运行模式),默认为true,为true时不显示浏览器
        executablePath:chromePath, //谷歌浏览器exe文件的路径
        defaultViewport:{           //设置页面可视区域的大小
            width:1920,
            height:1080
        } 
    });

    const polyPage= await browser.newPage();
    // await polyPage.goto(`https://car.autohome.com.cn/price/brand-${id}.html`);



    const getPolyList=async(id)=>{
        await polyPage.goto(`https://car.autohome.com.cn/price/brand-${id}.html`);
        let brandList=await polyPage.$$eval('#cartree .current dl a',(doms)=>{
            let brands=[];
            doms.forEach((item)=>{
                let brand=item.innerText.split('(')[0];
                brands.push({brand});
            });
            return brands;
        });
        console.log('浏览器返回的内容:',brandList);
    }

   await getPolyList(173);

}

main();


版权声明:本文为nengsong111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。