node.js - 如何在 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 的唯一方法吗?
解决方案
经过大量修改后,我发现了一个默认情况下将所有 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
}
}
}
推荐阅读
- json - JSON返回零检查?
- amazon-web-services - AWS CodeDeploy 蓝/绿部署 ELB 架构
- r - 如何在 HTML 表格中添加新行
- angular - Angular 8 - 无法在 ZoneDelegate.invokeTask 处读取 null 的属性“appendChild”
- c# - Google KMS 在解密数据时出错
- mysql - 根据条件计算mysql 5.7
- xml - XSLT(XML 到 XML 转换)
- function - Lua 函数 .. 可选表
- android - return super.onOptionsItemSelected(item) 有什么作用?
- powershell - 远程桌面网关将带有 powershell 的外部主机名添加到 rd-gateway 托管网络资源组会导致访问被拒绝