我试图记录不断更新的数据在网页上。在工具中,我可以看到传入的数据是通过AJAX请求获得的。
当我点击“got”文本文件时,我可以在中看到我想要的数据。我希望使用PhantomJS来接收AJAX响应,然后将这些响应保存到文件中。
到目前为止,我有一个程序可以打开我感兴趣的网页的URL,并且可以打印出接收到的网络流量的概述,但是我不知道如何保存实际的文件。我该怎么做?
目前为止的代码:
var page = require('webpage').create();
var url = "www.site_of_interest.com";
page.onResourceRequested = function(request) {
console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function(response) {
console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);
发布于 2014-10-01 23:37:09
目前,这在PhantomJS中是不可能的。它不公开这些回调中的请求/响应内容。可能的解决办法是:
onResourceReceived
处理程序中发出自己的AJAX请求,并使用fs
模块将响应保存到文件中。XMLHttpRequest
实现编写为代理,以保存响应,以便能够抓取响应。必须在任何页面JavaScript运行之前注入它。因此,page.onInitialized
处理程序工作得最好。我已经为CasperJS写了一篇关于这些解决方案的文章,但是它们可以很容易地转换成与普通的PhantomJS:A: How can I catch and process the data from the XHR responses using casperjs?一起使用。
https://stackoverflow.com/questions/26152192
复制相似问题