• 一个简单的puppeteer爬虫


    const puppeteer = require("puppeteer");
    const path = require('path');
    const pathToExtension = path.join(__dirname, './chrome-mac/Chromium.app/Contents/MacOS/Chromium');
    const conf = {
        headless: false,
        executablePath: pathToExtension,
        defaultViewport: {
             1300,
            height: 900
        },
    };
    
    (async () => {
    
        const browser = await puppeteer.launch(conf)
        const page = await browser.newPage()
    
        await page.goto('https://www.baidu.com/', {waitUntil: 'networkidle2'});
        //addScriptTag需要加在goto的后面,然后就可以在evaluate里使用jQuery的语法了。
        await page.addScriptTag({
            url: 'https://code.jquery.com/jquery-3.2.1.min.js',
        });
        await page.waitFor('#u1')
        // 可以接收evaluate内部打印的console内容
        page.on('console',msg=>{
                for(let i =0;i<msg.args().length;i++){
                    console.log(`${i}: ${msg.args([i])}`)
                }
        })
         const result = await page.evaluate(() => {
            let data = []; // 初始化空数组来存储数据
            let elements = $("#u1"); // 获取所有元素
            for (let element of elements){
                let title = element.innerText; // 获取标题
                let url = element.href;//获取网址
                data.push({title,url}); // 存入数组
            }
            return data;
        });
        console.log(result);
        await page.waitFor(3000);
        await browser.close();
    
    })();
    
  • 相关阅读:
    php中的form表单
    http
    PHP做的简单计算器
    用Js写贪吃蛇
    ajax简单操作,验证用户名是否可以
    关于ARM PC值
    阅读脚本控制pwm代码
    编译选项
    关于机器码、原码、反码、补码
    makefile学习之函数
  • 原文地址:https://www.cnblogs.com/c-x-a/p/11263087.html
Copyright © 2020-2023  润新知