Я запускаю следующий скрипт на EC2 AWS с Amazon Linux AMI
const puppeteer = require('puppeteer');
url_ = 'https://www.barchart.com/futures/quotes/ES*0/interactive-chart/fullscreen';
func()
async function func() {
console.log(0)
const browser = await puppeteer.launch();
console.log(1)
const page = await browser.newPage();
console.log(2)
await page.goto(url_);
console.log(page)
return page
}
с сегодняшнего дня, без изменений или новых установок на EC2, скрипт перестал работать, пока он работал до вчерашнего дня.
Тот же сценарий на локальной машине все еще работает.
Вместо этого на EC2 выдает следующую ошибку:
(узел: 12636) UnhandledPromiseRejectionWarning: Ошибка: навигация не удалась, потому что браузер отключился!
на CDPSession.LifecycleWatcher._eventListeners.helper.addEventListener (/home/ec2-user/hd/node_modules/puppeteer/lib/LifecycleWatcher.js:47:107)
на CDPSession.emit (events.js: 189: 13)
на CDPSession._onClosed (/home/ec2-user/hd/node_modules/puppeteer/lib/Connection.js:215:10)
в Connection._onClose (/home/ec2-user/hd/node_modules/puppeteer/lib/Connection.js:138:15)
на WebSocketTransport._ws.addEventListener.event (/home/ec2-user/hd/node_modules/puppeteer/lib/WebSocketTransport.js:45:22)
на WebSocket.onClose (/home/ec2-user/hd/node_modules/ws/lib/event-target.js:124:16)
на WebSocket.emit (events.js: 189: 13)
на WebSocket.emitClose (/home/ec2-user/hd/node_modules/ws/lib/websocket.js:191:10)
в Socket.socketOnClose (/home/ec2-user/hd/node_modules/ws/lib/websocket.js:850:15)
на Socket.emit (events.js: 189: 13)
- ASYNC -
в кадре. (/Home/ec2-user/hd/node_modules/puppeteer/lib/helper.js:110:27)
в Page.goto (/home/ec2-user/hd/node_modules/puppeteer/lib/Page.js:656:49)
на странице. (/Home/ec2-user/hd/node_modules/puppeteer/lib/helper.js:111:23)
в func (/home/ec2-user/hd/scrape_bk.js:19:13)
at process._tickCallback (internal / process / next_tick.js: 68: 7)
(узел: 12636) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри асинхронной функции не был выполнен блок catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1)
(узел: 12636) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания устарело. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом выхода.
если я вместо этого дам этот URL (http://www.google.com), я получаю эту ошибку на EC2 (пока она все еще работает на локальной машине):
(узел: 12938) UnhandledPromiseRejectionWarning: Ошибка: страница разбилась!
в Page._onTargetCrashed (/home/ec2-user/hd/node_modules/puppeteer/lib/Page.js:185:24)
на CDPSession.Page.client.on.event (/home/ec2-user/hd/node_modules/puppeteer/lib/Page.js:140:56)
на CDPSession.emit (events.js: 189: 13)
на CDPSession._onMessage (/home/ec2-user/hd/node_modules/puppeteer/lib/Connection.js:200:12)
в Connection._onMessage (/home/ec2-user/hd/node_modules/puppeteer/lib/Connection.js:112:17)
на WebSocketTransport._ws.addEventListener.event (/home/ec2-user/hd/node_modules/puppeteer/lib/WebSocketTransport.js:41:24)
на WebSocket.onMessage (/home/ec2-user/hd/node_modules/ws/lib/event-target.js:120:16)
на WebSocket.emit (events.js: 189: 13)
в Receiver.receiverOnMessage (/home/ec2-user/hd/node_modules/ws/lib/websocket.js:789:20)
на Receiver.emit (events.js: 189: 13)
(узел: 12938) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри асинхронной функции не был выполнен блок catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1)
(узел: 12938) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания устарело. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.
(узел: 12938) UnhandledPromiseRejectionWarning: Ошибка: навигация не удалась, потому что браузер отключился!
на CDPSession.LifecycleWatcher._eventListeners.helper.addEventListener (/home/ec2-user/hd/node_modules/puppeteer/lib/LifecycleWatcher.js:47:107)в CDPSession.emit (events.js: 189: 13) в CDPSession._onClosed (/home/ec2-user/hd/node_modules/puppeteer/lib/Connection.js:215:10) в Connection._onClose (/ home / ec2-user / hd / node_modules / puppeteer / lib / Connection.js: 138: 15) в WebSocketTransport._ws.addEventListener.event (/home/ec2-user/hd/node_modules/puppeteer/lib/WebSocketTransport.js:45:22) в WebSocket.onClose (/home/ec2-user/hd/node_modules/ws/lib/event-target.js:124:16) в WebSocket.emit (events.js: 189: 13) в WebSocket.emitClose (/home / ec2-user / hd / node_modules / ws / lib / websocket.js: 191: 10) в Socket.socketOnClose (/home/ec2-user/hd/node_modules/ws/lib/websocket.js:850:15)в Socket.emit (events.js: 189: 13) - ASYNC - в Frame.(/home/ec2-user/hd/node_modules/puppeteer/lib/helper.js:110:27) в Page.goto (/home/ec2-user/hd/node_modules/puppeteer/lib/Page.js:656:49) на с.(/home/ec2-user/hd/node_modules/puppeteer/lib/helper.js:111:23) в func (/home/ec2-user/hd/scrape_bk.js:13:13) в process._tickCallback (внутренний/process/next_tick.js:68:7) (узел: 12938) UnhandledPromiseRejectionWarning: необработанное отклонение обещания.Эта ошибка возникла либо из-за того, что внутри асинхронной функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch ().(id отклонения: 2)
Я не знаю, как определить источник проблемы, поскольку она возникла внезапно, без изменений в машине или коде, и на моей локальной машине она работает нормально.