Nodejs puppeteer 放到 web 服务器时出现了一个诡异的问题

发布于 1周前 作者 eggper 来自 nodejs/Nestjs

Nodejs puppeteer 放到 web 服务器时出现了一个诡异的问题

用 puppeteer 做了一个 web 服务。 在本地测试没有问题,windows7。 上传到 vps (搬瓦工)后,抓取国内网站没有问题,但是一输入 www.google.comyoutube.comwww.facebook.com 这样的网站,我的网站就不能访问了。

然后过一会儿又好了。只能输入国内的网站。不知道是什么原因。


1 回复

针对你提到的Node.js中Puppeteer在Web服务器上出现的诡异问题,这里提供一些可能的解决方案和排查思路。

首先,请确保Puppeteer和Node.js的版本兼容,并且已经正确安装。以下是一些常见的排查步骤和解决方案:

  1. 权限问题

    • 如果在服务器上以root权限运行Puppeteer,可能会遇到无法启动浏览器的错误。可以尝试在Puppeteer的配置中加入'--no-sandbox', '--disable-setuid-sandbox'参数来解决问题。
    const browser = await puppeteer.launch({
        headless: true,
        args: ['--no-sandbox', '--disable-setuid-sandbox']
    });
    
  2. 资源不足

    • 如果服务器资源不足(如CPU、内存),Puppeteer可能会因为无法处理请求而报错。可以尝试增加服务器资源或优化Puppeteer的使用方式。
  3. 网络问题

    • 网络连接问题也可能导致Puppeteer出错。请检查网络连接状态,确保网络稳定可靠。
  4. 并发请求过多

    • 如果并发请求过多,服务器可能无法及时处理。可以尝试控制并发请求数量,设置适当的请求间隔。
  5. 反爬虫机制

    • 有些网站会采取反爬虫策略。可以尝试设置合理的请求头信息来模拟真实的浏览器行为。

如果以上方法都不能解决问题,建议查看Puppeteer的日志输出,寻找更具体的错误信息,以便进行针对性的排查和解决。

回到顶部