首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Perl为网页截图?

如何使用Perl为网页截图?
EN

Stack Overflow用户
提问于 2010-02-23 01:45:23
回答 4查看 7.6K关注 0票数 17

是否可以用Perl编写一个脚本,打开不同的URL并保存每个URL的屏幕截图?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-23 02:14:29

您可以使用WWW::Mechanize::Firefox控制Firefox实例,并使用$mech->content_as_png转储呈现的页面。

但请注意,设置它可能会带来相当大的挑战。

如果一切正常,你可以简单地使用这样的脚本来转储所需网站的图像,但你应该启动Firefox并手动将其调整为所需的宽度(高度无关紧要,WWW::Mechanize::Firefox总是转储整个页面)。

代码语言:javascript
复制
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();
票数 25
EN

Stack Overflow用户

发布于 2010-02-23 03:02:09

另一种不需要使用浏览器的方法是使用ImageMagickHTML2PS来转换图像。但是请注意,这不是微不足道的,它几乎不可能(上次我尝试)让它在Windows上正常工作。

一旦安装了ImageMagick,最简单的方法就是对ImageMagick安装的convert程序运行系统调用。如果您想要一种不那么黑客的方法,您可以使用PerlMagick ImageMagick应用编程接口。

你可以在PerlMonks上找到关于这种方法的精彩讨论。

票数 8
EN

Stack Overflow用户

发布于 2010-02-23 02:48:53

您还可以使用IE使用Win32::IE::Mechanize呈现web页面,然后使用Win32::Screenshot捕获该页面。您可能需要做一些工作来弄清楚在哪里拍摄屏幕截图,但这应该不是太难。

当然,这将是一个纯Windows平台的解决方案,但可能已经足够了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2312852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档