好吧,这可能是一个复杂的问题。在得到建议之后。我想创建一个可以从命令行运行的脚本,该脚本将获取 HTML 页面列表并将它们转换为动画 gif(按照我提供的顺序)。速度是一个考虑因素,但在这个阶段,欢迎任何冗长的想法。
出于测试目的,我的 HTML 页面是:
最佳答案
您的意思是在捕获页面时首先在浏览器中呈现页面?
(编辑:来自评论,显然不是)
看看http://phantomjs.org/screen-capture.html
我无法让它与您的页面一起使用,但我认为您可以。
它与其他网站(如 stackexchange)配合良好。
此外,有时 BBC 对来自澳大利亚的请求有点好笑......
我下载了 64 位 Linux 版本,解压了它,并尝试使用这个 super 基本的脚本。
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])
关于linux - 使用命令行从多个 HTML 页面创建动画 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511074/