使用 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 分析传入的网络流量的主要内容,如果未能解决你的问题,请参考以下文章