后台获取网页截图

2014-07-24 22:57:42 +08:00
 shoumu
服务器返回相应的json数据,在浏览器中经过渲染得到图片。现在想要后台程序获取图片,有什么解决方案?

已知的是phantomjs,还有没有更好的呢?
5508 次点击
所在节点    程序员
18 条回复
jsonline
2014-07-24 23:39:35 +08:00
HTML -> Canvas -> DataURI
反正是要用到浏览器的API的
izoabr
2014-07-24 23:43:16 +08:00
之前用这个转过报表,有时候执行的还是有点差距的。
看你具体的需求,phantomjs出来有问题?
shoumu
2014-07-25 10:04:24 +08:00
@izoabr phantomjs出来和浏览器中有一点不同
shoumu
2014-07-25 10:06:27 +08:00
@jsonline 最后部署到ubuntu server,用不了浏览器api吧
izoabr
2014-07-25 10:10:17 +08:00
@shoumu 是不是里面有js图表?
shoumu
2014-07-25 11:02:20 +08:00
@izoabr 是的
shoumu
2014-07-25 11:02:54 +08:00
@izoabr 或者我就直接获取图片的编码怎么做呢?
lei286394973
2014-07-25 11:52:00 +08:00
python 有个 webkit2png 包,你可以去试试,只是给个思路
YiSheng
2014-07-25 14:12:46 +08:00
我们产品目前用phantomjs, 没发现什么问题
izoabr
2014-07-25 17:28:15 +08:00
@shoumu 我以前的图表总是会出现抓出空图表的情况,phantomjs有一个sleep的参数,就是加载完之后,再等几秒时间让网页执行。
shoumu
2014-07-25 17:41:35 +08:00
@izoabr 我从phantomjs中抓下的图片和在浏览器中打开的图表两者的样式不一样。而且我一个一面中有多个图,需要分别抓取,挺麻烦。现在想要直接用phantomjs运行生成图表js代码,看一下是否能行。
izoabr
2014-07-25 17:47:33 +08:00
@shoumu 方不方便把你抓出来的页面的图发出来我看看呀?logo之类的可以打下马赛克
shoumu
2014-07-25 18:25:37 +08:00
@izoabr 怎么给你看
izoabr
2014-07-25 22:13:00 +08:00
@shoumu 别光给我看呀,贴图,把图片地址单独一行回复上来,大家一起看看嘛。
zhanglp888
2014-07-25 23:16:16 +08:00
可以用CutyCapt来截屏!
http://cutycapt.sourceforge.net/

是linux下的!


使用方法:

with X server
./CutyCapt --url=http://www.example.org --out=example.png

without X server :
./CutyCapt/xvfb-run.sh --server-args="-screen 0, 1024x768x24" /usr/local/CutyCapt/CutyCapt --url=http://www.sohu.com --out=sohu.jpg
shoumu
2014-07-26 09:34:49 +08:00
shoumu
2014-07-26 09:36:27 +08:00
@zhanglp888
我试试,但是我只想要自动获取网页中的图表部分,而图表的位置是变化的
izoabr
2014-07-26 11:24:35 +08:00
感谢@zhanglp888,我之前也用过这个,效果不错,但一直没想起来叫什么。
@shoumu 如果你仅仅想弄图表,并且这个东西是比较固定的,那你就干脆自己生成就好了,他这个图表要么是一个后台现成的图片,要么是flash之类的通过json或者xml提供数据源实时生成,我也用过js版本的,都可以。你看看他的源码,是用什么生成的,干脆直接模仿,模仿一个这样的网页出来,就固定了,你每次截取这个你自己定制的页面就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124374

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX