javascript - 使用 headless Chrome 以编程方式捕获 AJAX 流量

标签 javascript ajax google-chrome google-chrome-headless puppeteer

Chrome 官方支持以 headless 模式运行浏览器(包括通过 Puppeteer API 和/或 CRI 库进行编程控制)。

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

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

最佳答案

更新

正如@Alejandro 在评论中指出的那样,resourceType是一个函数并且返回值是小写的

page.on('request', request => {
    if (request.resourceType() === 'xhr')
    // do something
});

原答案

Puppeteer 的 API 让这变得非常简单:
page.on('request', request => {
  if (request.resourceType === 'XHR')
    // do something
});

您还可以使用 setRequestInterception 拦截请求,但如果您不打算修改请求,则在此示例中不需要它。

有一个example of intercepting image requests你可以适应。
resourceType s 定义为 here .

关于javascript - 使用 headless Chrome 以编程方式捕获 AJAX 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075265/

相关文章:

javascript - 需要实现 html 按钮来访问 REST 获取资源

javascript - 在对象内移动(而不是复制)属性 - 使用引用

javascript - 在 Promise() 中使用 while 循环

javascript - touchmove事件是否支持多点触控?

javascript - AJAX 请求无法被 PHP 脚本识别为 POST

javascript - AJAX 响应错误:net::ERR_EMPTY_RESPONSE

javascript - jQuery 和附加大量 HTML

google-chrome - Chrome 扩展程序存在有关 UTF-8 的 content.js 错误

search - 如何自定义谷歌浏览器以在右键单击时添加搜索选项?

macos - 通过终端获取 Chrome 标签的 pid