0

我有这个脚本在从 Visual Studio Code 终端执行时可以正常工作,但是当它从我的托管网站服务器(A2 Hosting)执行时,我收到以下错误。这是我的脚本,它几乎是我从网站上获得的示例。

const chromeLauncher = require('chrome-launcher');
const axios = require('axios');
const puppeteer = require('puppeteer');

(async () => {
  // Initializing a Chrome instance manually
  const chrome = await chromeLauncher.launch({
    port: 7822,
    chromeFlags: ['--headless']
  });
  const response = await axios.get(`http://localhost:${chrome.port}/json/version`);
  const { webSocketDebuggerUrl } = response.data;

  // Connecting the instance using `browserWSEndpoint`
  const browser = await puppeteer.connect({ browserWSEndpoint: webSocketDebuggerUrl });

  //await browser.close();
  await chrome.kill();
})();

我感觉我的问题与“localhost”有关,从托管服务器执行时使用它似乎没有意义,但我不确定我可以用什么代替。这是我得到的错误:

(节点:9737)UnhandledPromiseRejectionWarning:错误:解析错误:在 Socket.emit(events.js:314:20)在 addChunk(_stream_readable.js:307)的 Socket.socketOnData(_http_client.js:509:22)的预期 HTTP/: 12) 在 TCP.onStreamRead (internal/stream_base_commons.js:188:23) (node:9737) 的 Socket.Readable.push (_stream_readable.js:221:10) 的 readableAddChunk (_stream_readable.js:282:9)

提前感谢,我几天来一直在努力解决这个问题。

4

1 回答 1

0

显然,您不能将 puppeteer 与他们的基本托管计划一起使用。我在 a2hosting 上的 puppeteer 也有问题,但有不同的错误:

致命:zygote_host_impl_linux.cc(117)] 没有可用的沙箱!

并禁用沙箱-

发生错误无法启动浏览器进程![0118/202801.621209:ERROR:bus.cc(393)] 无法连接到总线:无法连接到套接字 /run/dbus/system_bus_socket:没有这样的文件或目录 [0118/202801.621276:ERROR:platform_thread_posix.cc(135) )] pthread_create: 资源暂时不可用 (11)

我联系了支持人员,他们说:

这些错误与您现有托管计划中存在的限制有关;您需要一个 VPS 才能正确托管 Puppeteer 应用程序https://www.a2hosting.com/vps-hosting/managed

于 2021-01-19T19:15:31.190 回答