微信公众号_订阅号_爬虫puppeteer

时间:2022-12-20 22:17:36

puppeteer

借助 puppeteer 库实现爬虫,puppeteer 提供了高级 api 接口来操作 chrome 来

npm install puppeteer --save-dev    // 下载到开发依赖----很大

业务逻辑:

1. 打开浏览器网页

2. 新建标签页

3. 跳转到指定网址

4. 开始爬取数据

5. 关闭浏览器

 

index.js

  •  
    const puppeteer = require('puppeteer');
    
    (async () => {
        // 1. 打开浏览器
        const browser = await puppeteer.launch({
            headless: true;    // 无头浏览器,不显示浏览器界面
        });
        
        // 2. 新建标签页
        const page = await browser.newPage();
        
        // 3. 跳转到指定网页
        await page.goto('https://豆瓣.com', {
            waitUntil:['load']
        });
        
        // page.type()    // 模拟用户登录
        
        // 4. 爬取数据
        //await page.screenshot({path: 'example.png'});
        
        await page.evaluate(()=>{
            // 对页面进行 DOM 操作
            const $lis = $('#nowplaying .list>li');
            let result = [];
            
            for(var i=0; i<$lis.length; i++){
                //获取了单个li元素
                const $li = $($lis[i]);
    
                //海报图
                const image = $li.find('.poster img').attr('src');
    
                //电影标题
                const title = $li.find('.stitle a').text().trim();
    
                //电影评分
                const rating = $li.find('.subject-rate').text();
                
                result.push({image, title, rating});
            };
            
            return result;
        });
        
        // 5. 关闭浏览器
        await browser.close();
    })();