如何利用CutyCapt插件截图登陆后的网页?

LongMarkCai 2017-12-15 10:07:07
公司项目需要把页面的iframe中的BI报表进行截图,考虑有两种方式:一是使用html2canvas,这个由于页面太多量太大就pass掉了;另外一种方法是使用CutyCapt插件进行截图,这种办法遇到一个不能截取登录过后加载的动态数据的问题,下面是代码。

// 要截图的网页URl
$url = "http://localhost:37799/WebReport/tst.html";
// 设置图片输出地址
$outdir = 'D:/12_11_images/'.time().'.png';
if (!file_exists(substr($outdir,0,15))) {
mkdir($outdir,0777,true);echo '创建文件夹成功';
}
// CutyCapt.exe的绝对路径
$path = 'D:/CutyCapt.exe';

// delay 等待秒 maxwait:不要等待(秒)
$cmd = "$path url=$url delay=60000 maxwait=90000 out=$outdir";
// 执行执行命令
if (exec($cmd) !== false) {
echo '图片抓取成功!'.'
'.'图片保存到路径:'.$outdir.'
'.'图片来源URL:'.$url;
}else{
echo '系统错误';
}

url得到的网页内容如图:




而截取的图片却是:




因为这个链接是做的单点登录,通过这个url访问他可以直接登录进去的,不需要人工在浏览器先去访问一次。然而上面的代码执行后给我截图出来的就是一张空白图片,里面只有一行“正在加载数据中...”,我想可能页面没有加载完,按照这个插件官方的说法是加delay这个延迟等待参数,设了1分钟没有任何效果,在exec函数前面延迟是没用的,他这个地方相当于直接调起cmd命令执行,执行时才会去访问这个url。

有没有用过这个插件的大牛,想请教下这个插件的延迟参数对于这种需要登录的网页都是怎么使用过的,有没有大牛遇到过这种情况,还望能给在下指点一二,在下不胜感激。
...全文
170 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

39,084

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧