【问题标题】:Puppeteer does not evaluate web-app on herokuPuppeteer 不评估 heroku 上的网络应用程序
【发布时间】:2021-12-20 22:40:25
【问题描述】:

我在我的电报机器人上使用 puppeteer 从网络上获取内容。 在本地,一切正常,但问题是:

当尝试获取 URL 的 HTML 时,给定的响应不是 HTML 文件,而是包含所有 js 文件的 Web 应用程序。在我的本地机器上 - 我正在获取包含所有所需链接的 HTML 文件。

这是我的代码:

return await puppeteer.launch({
  args: ['--no-sandbox', '--disable-setuid-sandbox'],
  headless: true,
}).then(async browser => {
  const page = await browser.newPage()
  page.setJavaScriptEnabled(true)

  await page.goto(targetUrl)

  await page.waitForTimeout(2000)
  const data = await page.$$eval(SELECTORS, (res) => {
      return res.map(r => {
        return r.getAttribute('ATRR')
      })
    }) as never as string[]

    .......
})

PS -------------- 已经将此 repo 添加到 Heroku:

https://github.com/jontewks/puppeteer-heroku-buildpack

【问题讨论】:

    标签: javascript node.js heroku puppeteer telegram


    【解决方案1】:

    显然,当你使用puppeteer-extra时,你也需要安装puppeteer库。

    由于某种原因,它们都依赖但不是自动安装的,因此 Chromium 引擎没有安装在 Heroku 上,它确实解释了它在我的本地机器上的工作方式 - 默认情况下有它。

    【讨论】:

      猜你喜欢
      • 2021-04-14
      • 2015-10-21
      • 1970-01-01
      • 2019-05-23
      • 2018-03-02
      • 2019-01-10
      • 1970-01-01
      • 2017-07-14
      • 2019-02-04
      相关资源
      最近更新 更多