puppeteer 如何屏蔽指定的请求 URL?

20 min read

在 Puppeteer 中,可以使用 request.abort() 方法来屏蔽指定的请求 URL。以下是一个简单示例:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // 监听所有请求
  await page.setRequestInterception(true);
  page.on('request', request => {
    const url = request.url();
    
    // 检查请求的 URL 是否需要被屏蔽
    if (url.includes('example.com')) {
      request.abort(); // 中止请求
    } else {
      request.continue(); // 继续请求
    }
  });

  await page.goto('https://example.com');
  await browser.close();
})();

在上述示例中,我们监听了所有的请求,并检查每个请求的 URL 是否包含 'example.com'。如果请求的 URL 包含此字符串,我们调用 request.abort() 方法来中止该请求,否则调用 request.continue() 方法继续请求。

请确保在 page.setRequestInterception(true) 之后调用 request.abort()request.continue(),否则将无法正确处理请求。