好的,这可能很复杂。经过建议和其他事情一样多。我想创建一个脚本,我可以从命令行运行,该命令行将获取HTML页面列表并将它们转换为动画gif(按照我提供的顺序)。速度是一个考虑因素,但在这个阶段,任何长篇大论的想法都是受欢迎的。
出于测试目的,我的HTML页面是:
答案 0 :(得分:0)
您的意思是在抓取时首先在浏览器中呈现页面?
(编辑:来自评论,显然不是)
看看http://phantomjs.org/screen-capture.html
我无法让它与您的网页一起使用,但我认为你可以
它与其他网站(如stackexchange)一起运行良好。
此外,有时英国广播公司对澳大利亚的请求有点搞笑......
我下载了64位Linux版本,没有使用它,并尝试使用这个超级基本脚本。
hello.js
console.log('Start ...');
var page = require('webpage').create();
page.open('http://www.stackoverflow.com', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});
我开始使用运行调试器的选项(可在Chrome中查看),但之后我保释了。
phantomjs-2.1.1-linux-x86_64/bin/phantomjs --remote-debugger-port=9000 --remote-debugger-autorun=yes hello.js
我会在这里留下原始答案,以便为那些可能想要在桌面上执行此操作以及动画gif转换的用户提供帮助。
从GUI桌面捕获:
然后就是在脚本中获得正确的时机。虽然“速度是一个考虑因素”,我们是在谈论几秒钟还是几分钟?
一个粗略的例子:
安装“scrot”作为屏幕抓取工具
apt-get install scrot
imagemagick / convert可能已安装?
apt-get install imagemagick
最大化您的默认浏览器
运行这个:
#!/usr/bin/env python
import time
from subprocess import Popen
wobpages = ['http://www.bbc.co.uk/sport','http://www.bbc.co.uk/news','http://www.bbc.co.uk/weather']
x =1
for page in wobpages:
Popen(["xdg-open", page])
time.sleep(8)
img = 'wobpage%s.png' % x
Popen(["scrot", img])
x += 1
opt = "convert -delay 100 -loop 0 *.png animation.gif"
Popen(['/bin/sh', '-c', opt])