phantomjs没有为重定向到不同页面的页面捕获图像

phantomjs没有为重定向到不同页面的页面捕获图像,phantomjs,Phantomjs,我试图捕获一个有重定向的网页(我没有实际的URL,我访问了一个URL,然后它将我重定向到实际的URL) 比如说 这是我正在捕获的URL 这会将用户重定向到 Phantomjs没有为这些链接创建图像 这是我正在使用的代码 var page = require('webpage').create(); page.open('http://facebook.com/930559626990858', function() { page.render('facebook.png'); pha

我试图捕获一个有重定向的网页(我没有实际的URL,我访问了一个URL,然后它将我重定向到实际的URL)

比如说 这是我正在捕获的URL

这会将用户重定向到

Phantomjs没有为这些链接创建图像

这是我正在使用的代码

var page = require('webpage').create();
page.open('http://facebook.com/930559626990858', function() {
  page.render('facebook.png');
  phantom.exit();
});
如何捕获具有重定向的URL

更新

正在重定向…\u脚本\u路径= “WebIDEndpointDispatchController”;变量 uri\u re=/^(?:(?:[^:/?[^:/?[^]+):)(?:/(?:[^/?[^/)))([^?[^?)))(?:\([^?))))(?:[^域])/,目标域=“”;window.location.href.replace(uri_re,函数(a,b,c,d){var e、 f,g;e=f=b+(c?“?”+c:”;if(d){d=d.replace(/^(![124;%21)/,”);g=d.charAt(0);if(g='/'.\124; g='\')e=d.replace(/^[\/]+/,'/');}if(e!=f){if(窗口.\u脚本路径)document cookie rdir=“=”窗口.\u脚本路径); 路径=/; domain=“+window.location.hostname.replace(/^(.facebook..)$/i,$1”);window.location.replace(target_domain+e);})/*=0){throw 1、 }si_cj(“3”);}第(e)款{si_cj(“1 \t“;window.document.write(“\u003Cstyle>body*{display:none !重要;}\u003C/style>\u003Ca href=\“\ onclick=\“top.location.href=window.location.href\” 样式=\“显示:块!重要;填充:10px\”>转到 Facebook.com\u003C/a>”;/nj4wiNXp/}}}}())/]>/window.location.replace(“https://www.facebook.com/kalyani.emandi/videos/930559626990858/");


这是上面用保存的html显示的脚本(由注释中提到的示例生成)

我将PhantomJs作为web服务SaaS运行,当我通过它运行您的url时,它可以工作:

看看这个输出,
pageResponses.events
节点。这会告诉您在url被请求时发生了什么。您将看到页面重定向正在发生。PhantomJs因不能正确处理重定向和AJAX“页面完成”而臭名昭著

因此,要解决问题,需要在渲染时添加延迟。(下面的标准示例不处理AJAX内容)。一个快速而肮脏的黑客将是:

var page = require('webpage').create();
page.open('http://facebook.com/930559626990858', function() {
     setTimeout(function(){
          page.render('facebook.png');
          phantom.exit();
     },2000
});

使用提供的代码捕获哪个页面?不捕获任何内容。没有创建任何文件。并且不提供任何错误将状态检查添加到您的脚本中,如下所示:它很可能无法打开您的URL,并且控制台中也没有消息