【问题标题】:Not sure how to deploy puppeteer to heroku when using heroku to host a bot使用heroku托管机器人时,不确定如何将puppeteer部署到heroku
【发布时间】:2021-06-03 12:48:45
【问题描述】:

我有一个 bot 命令,它是一个图像抓取工具,它使用 puppeteer。我将 puppeteer 文件下载到我的 VSC(Visual Studio 代码)中,当我从 VSC 终端运行机器人时,图像抓取功能起作用。我可以将我使用的文件提交到 GitHub,然后链接到 Heroku。但是当我尝试在 Heroku 上托管机器人并使用 image scraper 命令时,Heroku 给出 UnhandledPromiseRejectionWarning: E​​rror: Failed to launch the browser process! 我还将 puppeteer buildpack 添加到我的 heroku 项目中,这似乎并不能解决问题。我见过的一种解决方案是将 { args: ['--no-sandbox'] } 添加到代码中,但我不确定在哪里添加它。我在哪里可以添加 --no-sandbox,或者是否有其他解决方法?谢谢

图像抓取代码:

var Scraper = require('images-scraper');

const google = new Scraper({
    puppeteer: {
        headless: true
    }
})



module.exports = {
    name: 'image',
    description: 'sends img to channel',
    async execute(client, message, args){
        const image_query = args.join(' ');
        let rng = Math.round(Math.random()*10)
        if(!image_query) return message.channel.send('Unable to find image');

        const image_results = await google.scrape(image_query, 100);
        message.channel.send(image_results[rng].url);
    }
}

【问题讨论】:

    标签: heroku visual-studio-code discord.js


    【解决方案1】:

    编辑(用于图像抓取)

    您可以正常使用所有 puppeteer.launch 选项和 puppeteer 选项。你可以这样做。

    const google = new Scraper({
        puppeteer: {
            headless: true,
            args: ["--no-sandbox"],
        },
    });
    

    您可以阅读更多关于在 Heroku here 上使用 image-scraper 的信息。

    上一个(用于木偶)

    正如您所提到的,您可以像这样将--no-sandbox 参数添加到您的代码中。

    const browser = await puppeteer.launch({
      args: [
        '--no-sandbox',
      ],
    });
    

    您可以阅读 puppeteer.launch 文档here

    如果这对您没有帮助,您应该查看官方troubleshooting guide on running Puppeteer on Heroku

    【讨论】:

    • 我应该在哪里将它添加到我的图像抓取代码中,因为当我尝试在 google 声明下添加它时,它给了我一个语法错误错误。 const browser = await puppeteer.launch({ ^^^^^ SyntaxError: await is only valid in async function
    • @botcoder 更新了答案以满足您的需求。
    猜你喜欢
    • 2021-10-25
    • 2021-02-19
    • 2021-11-08
    • 2021-01-14
    • 2020-06-27
    • 2020-07-20
    • 2022-01-07
    • 2021-07-11
    • 2019-08-04
    相关资源
    最近更新 更多