使用 PhantomJS 分析传入的网络流量

Posted

技术标签:

【中文标题】使用 PhantomJS 分析传入的网络流量【英文标题】:Analysing Incoming Network Traffic with PhantomJS 【发布时间】:2014-04-29 03:07:39 【问题描述】:

我的目标是使用 PhantomJS 连接到网站并将传入的网络流量打印到 HAR 格式的输出文件中。

使用netsniff.js 示例,我可以在首次加载网站时记录所有网络流量,但我不知道如何捕获更多传入流量。

例如,如果您转到 stack exchange 的首页,堆栈站点会间歇性地更改并会收到一个新的 .png 文件(这可以通过查看 Chrome 开发人员工具的网络选项卡或类似的东西来查看对于其他浏览器)。我想要一种无限期地捕获所有这些 HAR 的方法。这怎么可能?

【问题讨论】:

我想说这就像删除Phantom.exit() 呼叫一样简单,它会继续收听。但我对 PhantomJS 和 SlimerJS 都做了一些快速测试,但没有通过。可能还需要其他东西,或者我选择的网站可能永远不会执行另一个 Ajax 请求... 查看 netsniff.js,我认为删除 Phantom.exit() 不会有太大的作用,因为当它到达代码中的那个点时,程序就没有什么可做的了。退出只是让你回到命令行。 【参考方案1】:

使用 netsniff.js,围绕创建 HAR 添加一个 setTimeout 包装器并输出它。

setTimeout(function()
    har = createHAR(page.address, page.title, page.startTime, page.resources);
    console.log(JSON.stringify(har, undefined, 4));
    phantom.exit();
,10000); /* pause 10 seconds to let things run after onLoad */

【讨论】:

以上是关于使用 PhantomJS 分析传入的网络流量的主要内容,如果未能解决你的问题,请参考以下文章

网络流分析

网络流分析

硒 - 蟒蛇。如何捕获网络流量的响应[重复]

OpenStack之VM东西南北向流量分析

OpenStack之VM东西南北向流量分析

网络流初步