我在Node.js中使用puppeteer开发小型爬虫。 目标网站有Flash内容,所以我想在puppeteer中启用Flash。
默认情况下,puppeteer无法使用Flash,并且允许网站的白名单为空。 我知道如何在木偶戏中启用Flash,但我不知道如何设置白名单。
怎么做? 有这样的旗帜吗?
const browser = await puppeteer.launch({
headless: false,
args: [
'--ppapi-flash-path = {FLASH_PATH}',
'--white-url = {TARGET_URL}'
]
});
或者,它是否只是在浏览器中设置页面中操作DOM的唯一方法(ex.chrome://settings/content/flash)?
答案 0 :(得分:0)
我自己解决了这个问题。 我找不到Flash白名单的标志和操纵chrome的设置页面的DOM对我来说太累了,但我得到了一些有用的参数。
<强> 1。 'userDataDir:{PROFILE_FILE}'
首先,手动启动chrome或chromium,并将url添加到列表中。 然后,将PROFILE_FILE设置为其用户数据路径。
<强> 2。 executablePath:'{PATH_TO_CHROME}'
基本上,运行chrome而不是chrome,默认情况下我们可以使用Flash和HLS等。 手动设置白名单,它可以正常工作。
答案 1 :(得分:0)
经过多次修补后,我找到了一个首选项文件配置,默认情况下将所有Flash内容列入白名单。
我已经a small puppeteer wrapper使用这个非常简单: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
}
}
}
&#13;