互联网上有网页的网址。我需要获取此页面的屏幕截图(无论在哪个浏览器中)。
我需要一个脚本(PHP,Python(甚至Django框架)),它在出口处接收URL(字符串)和输出屏幕截图文件(文件gif,png,jpg)。
UPD:
我需要动态创建一个与URL相对的页面,该页面将放置具有相同URL的页面截图。
答案 0 :(得分:7)
为什么在可以使用其他网站的服务时需要脚本?
检查我正在使用的是什么:WebSnapr http://www.websnapr.com/
或者,如果其他内容符合您的要求,请检查http://www.google.ro/search?ie=UTF-8&q=website+thumbnail。
答案 1 :(得分:1)
PhantomJS是从URL生成屏幕截图的更好选择。 以下脚本演示了页面捕获的最简单用法。它加载Github主页,然后将其保存为图像github.png。 代码
var page = require('webpage').create();
page.open('http://github.com/', function() {
page.render('github.png');
phantom.exit();
});
要运行此示例,请创建一个名为github.js的新文件。将上面的代码复制并粘贴到github.js文件中。在命令行中,使用PhantomJS运行这个新创建的脚本:
phantomjs github.js
有很多projects用于使用PhantomJS生成屏幕截图。 Pageres生成可靠的屏幕截图,基于NodeJS和PhantomJS。
答案 2 :(得分:1)
使用Google Page Speed的解决方案 - 经测试&工作
//SOLUTION 1
<?php
$link = "http://example.com";
$googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$link&screenshot=true");
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
$show_link = "<a href='$link'><img src=\"data:image/jpeg;base64,".$screenshot."\" /></a>";
echo $show_link;
//SOLUTION 2
$name = 'test';
$googlePagespeedData = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$link&screenshot=true");
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = base64_decode($googlePagespeedData['screenshot']['data']);
$data = str_replace('_','/',$googlePagespeedData['screenshot']['data']);
$data = str_replace('-','+',$data);
$decoded = base64_decode($data);
file_put_contents('myfolder/'.$name.'.jpg',$decoded);
$file_name = "$name.jpg";
/*
-- IMPORTANT INFORMATION -- READ BELOW --
Choose how to proceed!
1. Use the above to display screenshots of links = longer processing time for multiple links.
2. Save image to a file, reference the saved image = more disk space needed if multiple links.
Note the trade off between processing time and disk space, if you're on a shared hosting platform with a small disk space limit and envisage or already have a lot of users (forums beware) you may want to consider a bigger hosting plan or even a dedicated server.
*/
?>
答案 3 :(得分:0)
您可以像我一样使用shotbox API
这是法语,但仍然很快:
答案 4 :(得分:0)
<img src='http://zenithwebtechnologies.com.au/thumbnail.php?url=www.subway.com.au'>
将网址作为参数传递,您将获得更多详细信息的图片,请查看此链接http://zenithwebtechnologies.com.au/auto-thumbnail-generation-from-url.html
答案 5 :(得分:0)
如果您是Python的家人,可以使用PyQt4。该库支持从URL获取屏幕截图。
答案 6 :(得分:-1)
还有http://webshot.mine.sk/免费,没有限制,多个API(js,jquery,php)