使用phantomjs读取响应主体

使用phantomjs读取响应主体,phantomjs,Phantomjs,是否有任何方法可以通过phantomjs请求资源并能够访问响应的主体?这是phantomjs目前的一个大问题。公开(截至撰写之时)票证位于,但目前尚无可靠的解决方案。这适用于收集您的请求数据和响应数据,因此您无法收集您提交的帖子数据,然后使用类似CasperJS下载的方案重新发送。更新:关于“获取并使用所有其他资源(如图像、CSS、字体等)做一些事情”的其他可能含义,我最近在博客中写道。我相信从1.9.1开始在PhantomJS中实现这一点的唯一方法是应用补丁并重新编译 也许我误解了你所说的“

是否有任何方法可以通过phantomjs请求资源并能够访问响应的主体?

这是phantomjs目前的一个大问题。公开(截至撰写之时)票证位于,但目前尚无可靠的解决方案。这适用于收集您的请求数据和响应数据,因此您无法收集您提交的帖子数据,然后使用类似CasperJS下载的方案重新发送。

更新:关于“获取并使用所有其他资源(如图像、CSS、字体等)做一些事情”的其他可能含义,我最近在博客中写道。我相信从1.9.1开始在PhantomJS中实现这一点的唯一方法是应用补丁并重新编译


也许我误解了你所说的“反应体”的意思,或者它是比这个问题最近才添加到PhantomJS中的,但它很简单:

var page = require('webpage').create();
var url = 'http://google.com/';
page.open(url,function(){
  console.log(page.content);
  phantom.exit();
  });
(顺便说一句,使用
page.plainText
不带HTML标记地获取它。)

如果您只是想要
标记内容,那么
中没有一种方法可以用于获取响应的任何部分:

var page = require('webpage').create();
var url = 'http://google.com/';
page.open(url,function(){
  var html = page.evaluate(function(){
    return document.getElementsByTagName('body')[0].innerHTML;
    });
  console.log(html);
  phantom.exit();
  });

使用
slimmerjs
。你所有的“幻影JS”代码也可以使用“slimmerjs”

更多信息。请注意末尾的
body
属性,该属性目前仅适用于slimmerjs


注意:请设置
page.captureContent=[/.*/]
,以便“body”显示在响应中。更多信息:

SlimerJS无法在新版FireFox上运行,因此对我没有好处


解释了如何在2019年末从XHR获取响应正文

我认为这与访问ajax响应或加载javascript的图像等有关。这就是我来到这里的原因。