phantomjs没有为重定向到不同页面的页面捕获图像
我试图捕获一个有重定向的网页(我没有实际的URL,我访问了一个URL,然后它将我重定向到实际的URL) 比如说 这是我正在捕获的URL 这会将用户重定向到 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
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,并且控制台中也没有消息