可以帮忙看下puppeteer请求为啥一直超时吗 ,在本地运行是正常的
根据报错信息显示,puppeteer的page.goto方法发起了一个网络请求,但是该请求的响应超时了:
Navigation Timeout Exceeded: 30000ms exceeded 这种情况一般是由于网页加载时间过长导致的,可能是由于网页本身过于复杂,或者是网络问题导致的。在本地运行正常,可能是由于本地网络和阿里云的网络环境不同,导致访问速度出现差异。
在阿里云函数计算中使用puppeteer请求经常会遇到超时的问题,这是因为在函数计算环境中,没有桌面环境和图形渲染引擎,而puppeteer是一个基于Chromium/Chrome浏览器的Node.js库,需要图形渲染引擎的支持。为了解决这个问题,可以通过安装无头浏览器来提供图形渲染引擎。推荐使用Chromium,因为它是puppeteer的默认选项,同时也具有更好的兼容性和更好的性能。以下是安装Chromium的步骤:
通过npm安装puppeteer和Chromium:
npm install --save puppeteer chromium
const chromium = require('chromium');
const executablePath = chromium.path;
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'],
executablePath,
});
const browser = await puppeteer.launch({
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-gpu',
'--single-process',
'--no-zygote',
'--no-first-run',
'--ignore-certificate-errors',
'--disable-dev-shm-usage',
'--disable-infobars',
'--user-data-dir=/tmp',
'--window-size=1200,800',
],
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。