使用无头Chrome以编程方式捕获AJAX流量

And*_*rei 5 javascript ajax google-chrome google-chrome-headless puppeteer

Chrome正式支持在无头模式下运行浏览器(包括通过Puppeteer API和/或CRI库进行编程控制).

我已经搜索了文档,但是我还没有找到如何以编程方式从实例中捕获AJAX流量(即从代码启动Chrome实例,导航到页面,以及访问后台响应/请求调用和原始数据(全部来自不使用开发人员工具或扩展的代码).

您是否有任何建议或示例详细说明如何实现这一目标?谢谢!

ebi*_*del 12

Puppeteer的API使这很容易:

page.on('request', request => {
  if (request.resourceType === 'XHR')
    // do something
});
Run Code Online (Sandbox Code Playgroud)

您也可以使用拦截请求setRequestInterception,但如果您不打算修改请求,则不需要此示例.

有一个拦截您可以适应的图像请求示例.

resourceTypes在这里定义.

  • 完美的。仅需注意一点,`resourceType`是一个函数,并且返回值是小写的,因此应为`if(request.resourceType()==='xhr')`。 (3认同)