Puppeteer:除了禁用网络安全之外获取 iframe 内容的另一种方法?

问题描述 投票:0回答:2

当我使用 Puppeteer 获取带有 iframe 的页面的 HTML 时,我遇到了

DOMException: Blocked a frame with origin [url] from accessing a cross-origin frame

我知道要绕过这个,我可以使用:

puppeteer.launch({
    headless: true,
    args: ['--disable-web-security']
});

但是除了使用

--disable-web-security
标志之外,还有其他方法可以绕过跨域问题吗?我看到网上有人敦促社区不要使用该标志,因为它很危险,因为它会暴露您的本地文件系统。

javascript cross-domain puppeteer same-origin-policy
2个回答
1
投票

您需要使用 Chromium。这对我有用:

puppeteer.launch({
  executablePath: 'chromium',
  args: [
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--disable-web-security',
    '--disable-features=IsolateOrigins,site-per-process',
  ],
})

0
投票

@Aleksey Razbakov answer 为我解决了以下问题:“沙箱属性同时具有允许脚本和允许相同来源的 iframe 可以逃脱沙箱。”

© www.soinside.com 2019 - 2024. All rights reserved.