禁用 Puppeteer 中的下载

Vit*_*dur 4 webautomation node.js puppeteer

是否可以禁用特定 mime 类型的下载。例如,导航到默认情况下将下载 zip 存档的 URL 不应执行任何操作。

编辑:

我事先不知道什么 url 将被访问以及什么将返回该 url。

Vit*_*dur 5

对我有用的解决方案:

const client = await page.target().createCDPSession();

// intercept request when response headers was received
await client.send('Network.setRequestInterception', {
  patterns: [{
      urlPattern: '*',
      resourceType: 'Document',
      interceptionStage: 'HeadersReceived'
  }],
});

await client.on('Network.requestIntercepted', async e => {
    let headers = e.responseHeaders || {};
    let contentType = headers['content-type'] || headers['Content-Type'] || '';
    let obj = {interceptionId: e.interceptionId};
    if (contentType.indexOf('application/zip') > -1) {
        obj['errorReason'] = 'BlockedByClient';
    }

    await client.send('Network.continueInterceptedRequest', obj);
});
Run Code Online (Sandbox Code Playgroud)

这段代码阻止导航到将下载 zip 存档并传递其余请求的 URL。

感谢 @hardkoded 建议访问github.com/GoogleChrome/puppeteer/issues/1191