🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 爬虫 ``` const puppeteer = require('puppeteer') const url = 'xxx' // 要爬取的页面 const sleep = time => new Promise(resolve => { setTimeout(resolve, time) }) ;(async () => { // 这个方法结合了下面3个步骤: // 1、使用 puppeteer.defaultArgs() 作为一组默认值来启动 Chromium。 // 2、启动浏览器并根据 executablePath ,handleSIGINT,dumpio 和其他选项开始管理它的进程。 // 3、创建一个 Browser 类的实例,并根据 defaultViewport,slowMo 和 ignoreHTTPSErrors 初始化它。 const browser = await puppeteer.launch({ args: ['--no-sandbox'], dumpio: false //是否将浏览器进程标准输出和标准错误输入到 process.stdout 和 process.stderr 中。默认是 false }) // 返回一个新的 Page 对象。Page 在一个默认的浏览器上下文中被创建。 const page = await browser.newPage() // 跳转到指定的页面 await page.goto(url, { // 满足什么条件认为页面跳转完成,默认是 load 事件触发时。指定事件数组,那么所有事件触发后才认为是跳转完成。 // networkidle2 - 只有2个网络连接时触发(至少500毫秒后) waitUntil: 'networkidle2' }) // 等待网页载入1秒钟 await sleep(1000) // 等待某个元素出现 // await page.waitForSelector('.more') <!-- 操作 --> // 在浏览器环境执行脚本 cosnt result = await page.evaluate(() => { // 可以获取DOM,返回结果... }) // 关闭浏览器 browser.close() process.send(result) // 将这个结果发送出去 process.exit(0) // 退出进程 })() ```