wil*_*ert 25
您可以使用WWW :: Mechanize :: Firefox来控制Firefox实例并使用转储呈现的页面$mech->content_as_png.
但请注意,设置它可能会带来相当大的挑战.
如果所有工作都按预期工作,您可以简单地使用这样的脚本来转储所需网站的图像,但是您应该启动Firefox并手动将其调整到所需的宽度(高度无关紧要,WWW :: Mechanize :: Firefox总是如此转储整个页面).
use WWW::Mechanize::Firefox;
use Path::Class qw/file/;
my $mech = WWW::Mechanize::Firefox->new(
bufsize => 10_000_000, # PNGs might become huge
);
$mech->get('http://www.stackoverflow.com/');
my $fh = file( 'test.png' )->open( '> :raw' );
print $fh $mech->content_as_png();
Run Code Online (Sandbox Code Playgroud)
使用该WWW::Selenium模块,您需要启动并运行Selenium远程控制会话.
该capture_entire_page_screenshot()方法应该让您启动并运行.
来自WWW :: Selenium on CPAN:
$sel->capture_entire_page_screenshot($filename, $kwargs)将当前窗口画布的全部内容保存为PNG文件...
一个典型的脚本:
use strict;
use warnings;
use WWW::Selenium;
my $sel = WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*iexplore",
browser_url => "http://www.google.com",
);
$sel->start;
$sel->open("http://www.google.com");
$sel->capture_entire_page_screenshot("screenshot.png");
$sel->close;
Run Code Online (Sandbox Code Playgroud)
另一种不需要使用浏览器的方法是使用ImageMagick和HTML2PS来转换图像.但要注意,这不是微不足道的,而且几乎不可能(最后我尝试过)让Windows正常工作.
一旦ImageMagick的安装,最简单的方法是只运行一个系统调用convert该程序ImageMagick的安装.如果您想要一种不那么强硬的方法,可以使用PerlMagick ImageMagick API.
您可以在PerlMonks上找到关于此方法的精彩讨论.
| 归档时间: |
|
| 查看次数: |
7151 次 |
| 最近记录: |