具体来说,有一个带有一堆图表( Echarts )的网页,需求是把这个网页作为报告,发送到某 win 上的邮箱客户端里(可能是 IE6 核心而且有很多限制),考虑到这网页基本不可能显示正常,只能发送图片。
参考了这篇的方法用 PyQt4 来截图:
http://www.oschina.net/code/snippet_219811_14920
然后发现一个问题, Echarts 的图表加载时有个动画效果,截图的话正好就截在动画过程中,翻了下文档也没找到有什么延时的办法?有了解 PyQt4 的吗?或者还有什么更好的轮子可以用?
1
TimePPT 2016-09-22 12:31:22 +08:00 via iPhone
直接取数据再用随便一个 Python 可视化库生成一次比截图省心好维护吧……
|
2
nino 2016-09-22 12:37:14 +08:00
|
3
wizardoz 2016-09-22 12:38:30 +08:00
Echarts 有保存为图片的接口,先把每个单独的图表保存为图片,然后在网页中嵌入图表图片是否可行?
|
4
pathletboy 2016-09-22 12:49:11 +08:00
phantomjs
|
5
goofool 2016-09-22 12:54:56 +08:00
In [29]: from selenium import webdriver
In [30]: driver = webdriver.PhantomJS() In [31]: driver.get("http://www.baidu.com") In [32]: driver.save_screenshot("test.png") Out[32]: True |
6
soulteary 2016-09-22 12:59:03 +08:00
使用 js headless 测试工具或许是更好的选择, http://casperjs.org/ 相比较 phantomjs 更简单, api 更友好一点。
capture() + wait() 两个 api 组合后的效果应该是你要的,如果你愿意, https://github.com/weaver/node-mail 发邮件 , https://github.com/eladnava/mailgen 改一下模版,把图加进去,效果更好。 |