首页 > 解决方案 > 如何在 puppeteer 中将 URL 添加到 Flash 白名单

问题描述

我在 Node.js 中使用 puppeteer 开发小型爬虫。目标站点有 Flash 内容,所以我想在 puppeteer 中启用 Flash。

默认情况下,puppeteer 无法使用 Flash,允许站点的白名单为空。我知道如何在 puppeteer 中启用 Flash,但我不知道如何设置白名单。

怎么做?有这样的flag吗?

const browser = await puppeteer.launch({
        headless: false,
        args: [
            '--ppapi-flash-path = {FLASH_PATH}',
            '--white-url = {TARGET_URL}'
        ]
    });

或者,它是在浏览器中设置页面(例如 chrome://settings/content/flash)中简单地操作 DOM 的唯一方法吗?

标签: node.jschromiumpuppeteer

解决方案


经过大量修改后,我发现了一个默认情况下将所有 Flash 内容列入白名单的首选项文件配置。

我制作了一个小的 puppeteer 包装器,以便非常容易地使用它:puppeteer.setExtra({allowFlash: true})

{
  "profile": {
    "content_settings": {
      "exceptions": {
        "flash_data": {
          "*,*": {
            "setting": {
              "flashPreviouslyChanged": true
            }
          }
        },
        "permission_autoblocking_data": {
          "*,*": {
            "setting": {
              "Flash": {
                "dismiss_count": 1
              }
            }
          }
        },
        "plugins": {
          "*,*": {
            "per_resource": {
              "adobe-flash-player": 1
            }
          }
        }
      },
      "pref_version": 1
    }
  }
}


推荐阅读