记录一个nodejs pupepteer 的bug修复

首先说一下这是我自己封装的一个puppteer的浏览器实例池,代码如下

import puppeteer from "puppeteer";
import {EventEmitter} from 'events';
import {isImageOrVideo} from "../utils/utils.js";
import {config as browserPoolConfig} from "../config/spider.js";

const {headless, poolSize} = browserPoolConfig;
EventEmitter.setMaxListeners(0);

const queue = [];
for (let i = 0; i < poolSize; i++) {
  const browser = await puppeteer.launch({headless});
  queue.push(browser);
}

/**
 * 获取一个新的浏览器实例
 * @returns {Promise<Browser|*>}
 */
const getBrowser = async () => {
  if (queue.length === 0) {
    return await puppeteer.launch({headless});
  }
  let res = queue.shift();
  return res;
};

/**
 * 获取浏览器的网页并阻止该网页内的图片和视频请求这样可以防止超时问题
 * @param browser
 * @returns {Promise<*>}
 */
const getBrowserPageWithoutPicAndVideo = async (browser) => {
  // 获取page
  let page = await b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值