node.js - Puppeteer 页面请求仅在 AWS EC2 实例上失败
问题描述
我已经使用我试图在 AWS EC2 实例上运行的节点(v12.16.2)和 puppeteer(v2.1.1)编写了一个小型 javascript 程序。我正在执行附加到此的 url。它在具有类似版本的本地(非 AWS)linux 机器上运行良好,但在 EC2 上,它失败了,根本不显示页面。我试过用 headless=false 和 devtools=true 运行。在浏览器控制台中,我看到:
Uncaught TypeError: Cannot read property 'length' of undefined at il_Ev (rs=ACT90oFtPziyty36T_zhgMUEStuCtJgAkQ:1862) at il_Hv (rs=ACT90oFtPziyty36T_zhgMUEStuCtJgAkQ:1849) at il_Yv.initialize (rs=ACT90oFtPziyty36T_zhgMUEStuCtJgAkQ:1867) at il__i (rs=ACT90oFtPziyty36T_zhgMUEStuCtJgAkQ:270) at il_Gl.il_Wj.H (rs=ACT90oFtPziyty36T_zhgMUEStuCtJgAkQ:322) 在 rs=ACT90oFtPziyty36T_zhgMUEStuCtJgAkQ:1869
正如我所提到的,同样的代码在不同的 linux 机器上运行良好,并且只是加载到浏览器中;没有错误。我难住了。有谁知道可能会发生什么?其他页面,如 google.com,在 EC2 中加载良好,仅供参考。TIA。
里德
这是相关代码的摘录,非常简单:
const browser = await puppeteer.launch({
headless: false,
devtools: true,
slowMo: 150
});
await browser.userAgent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"
);
/* Get the first page rather than creating a new one unnecessarily. */
let page = (await browser.pages())[0];
await page.setViewport({
width: 1524,
height: 768
});
try {
await page.goto("https://www.google.com/imgres?imgurl=https%3A%2F%2Fimg-s-msn-com.akamaized.net%2Ftenant%2Famp%2Fentityid%2FAACPW4S.img%3Fh%3D552%26w%3D750%26m%3D6%26q%3D60%26u%3Dt%26o%3Df%26l%3Df%26x%3D992%26y%3D672&imgrefurl=https%3A%2F%2Fwww.msn.com%2Fen-us%2Flifestyle%2Fpets-animals%2F49-adorable-puppy-pictures-that-will-make-you-melt%2Fss-AACSrEY&tbnid=Ad7wBCCmAXPRDM&vet=12ahUKEwig1NfB0Y7oAhXGHc0KHSzuCMUQMygeegQIARBw..i&docid=jawDJ74qdYREJM&w=750&h=500&q=puppies&ved=2ahUKEwig1NfB0Y7oAhXGHc0KHSzuCMUQMygeegQIARBw", {
timeout: 0,
// waitUntil: ["load"]
// waitUntil: ["networkidle2"]
});
await page.waitForSelector('#irc_shc', {
visible: true,
timeout: 0
});
} catch(e) {
console.log("error: e = ", e);
}
解决方案
事实证明,这只是一个临时的谷歌页面错误。
推荐阅读
- reactjs - 尝试在 React 中显示来自 OMdb API 的数据
- c++ - 如何根据重量和距离计算运费?
- azure - HDInsight 核心配额增加
- aws-sdk-js - 如何使用 AWS SDK v3 将 React 日志安全地写入 CloudWatch?
- r - 如何从数据集表中创建联合分布矩阵 P[x,y]
- python - PyTorch "where" 有条件的 -- RuntimeError: 预期的标量类型 long long 但发现 float
- java - 记录数组和文件处理
- r - 删除“-”之后的单词,除了指定的字符串
- python - 如何选择日期之后的数据,这是熊猫每组列最大值的索引?
- r - 基于特定空间的正则表达式 - R (dplyr::separate)