Puppeteer / Headless Chromium“Unexpected token < in JSON at position 0”错误仅在无 GUI 环境中

Puppeteer / headless Chromium "Unexpected token < in JSON at position 0" error only in GUI-less environments

提问人:Alexander 提问时间:7/26/2023 最后编辑:Heretic MonkeyAlexander 更新时间:7/26/2023 访问量:148

问:

我正在使用带有无头 Chromium 的 Puppeteer 登录某个网站,当页面尝试获取其某些 JS 文件(故意隐藏网站名称)时,我收到以下错误:

[0726/133656.950429:INFO:CONSOLE(1)] "object err SyntaxError: Unexpected token < in JSON at position 0", source: https://***/_/horizon/p/_next/static/chunks/commons-e5cd62ffd659714024c3.js (1)

只有当我在本地 Docker (Alpine Linux) 或 VPS (Debian) 上运行脚本时,才会发生这种情况,因此两者都是无 GUI 环境。当我在本地主机上运行相同的脚本(Manjaro Linux,没有 Docker)时 - 一切都运行顺利,没有这样的错误。我在所有情况下都运行节点 v16.x,Chromium 版本是 v102 (Docker) 和 v109(本地主机),以下是我的 Puppeteer 设置:

{
        headless: 'new',
        args: [
            '--no-sandbox',
            '--disable-setuid-sandbox',
            '--disable-accelerated-2d-canvas',
            '--disable-gpu',
            '--disable-features=DefaultPassthroughCommandDecoder',
            '--disable-web-security',
            '--disable-features=IsolateOrigins',
            '--disable-site-isolation-trials',
        ],
        dumpio: true,
        pipe: true,
    };

最终,我需要它在 VPS 上运行。几天来我一直在尝试解决这个问题,但无济于事,请帮忙。

JavaScript 节点 .js Docker 木偶 Chromium

评论

0赞 Zack 7/26/2023
是否有可能您的用户代理附带了某些东西,并且它为您提供了 HTML 页面而不是 JSON 响应?
3赞 Heretic Monkey 7/26/2023
该错误通常在将 HTML 传递给 JSON 解析器时发生。为什么你得到的是HTML而不是JSON,我们无法具体告诉你。我们唯一可以建议的是跟踪哪个请求导致了错误,并查看导致它返回 HTML 的请求是什么。

答: 暂无答案