后台获取网页截图 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
shoumu
V2EX    程序员

后台获取网页截图

  •  
  •   shoumu
    shoumu 2014-07-24 22:57:42 +08:00 5967 次点击
    这是一个创建于 4104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器返回相应的json数据,在浏览器中经过渲染得到图片。现在想要后台程序获取图片,有什么解决方案?

    已知的是phantomjs,还有没有更好的呢?
    18 条回复    2014-07-26 11:24:35 +08:00
    jsonline
        1
    jsonline  
       2014-07-24 23:39:35 +08:00
    HTML -> Canvas -> DataURI
    反正是要用到浏览器的API的
    izoabr
        2
    izoabr  
       2014-07-24 23:43:16 +08:00
    之前用这个转过报表,有时候执行的还是有点差距的。
    看你具体的需求,phantomjs出来有问题?
    shoumu
        3
    shoumu  
    OP
       2014-07-25 10:04:24 +08:00
    @izoabr phantomjs出来和浏览器中有一点不同
    shoumu
        4
    shoumu  
    OP
       2014-07-25 10:06:27 +08:00
    @jsonline 最后部署到ubuntu server,用不了浏览器api吧
    izoabr
        5
    izoabr  
       2014-07-25 10:10:17 +08:00 via iPhone
    @shoumu 是不是里面有js图表?
    shoumu
        6
    shoumu  
    OP
       2014-07-25 11:02:20 +08:00
    @izoabr 是的
    shoumu
        7
    shoum  
    OP
       2014-07-25 11:02:54 +08:00
    @izoabr 或者我就直接获取图片的编码怎么做呢?
    lei286394973
        8
    lei286394973  
       2014-07-25 11:52:00 +08:00   1
    python 有个 webkit2png 包,你可以去试试,只是给个思路
    YiSheng
        9
    YiSheng  
       2014-07-25 14:12:46 +08:00
    我们产品目前用phantomjs, 没发现什么问题
    izoabr
        10
    izoabr  
       2014-07-25 17:28:15 +08:00
    @shoumu 我以前的图表总是会出现抓出空图表的情况,phantomjs有一个sleep的参数,就是加载完之后,再等几秒时间让网页执行。
    shoumu
        11
    shoumu  
    OP
       2014-07-25 17:41:35 +08:00
    @izoabr 我从phantomjs中抓下的图片和在浏览器中打开的图表两者的样式不一样。而且我一个一面中有多个图,需要分别抓取,挺麻烦。现在想要直接用phantomjs运行生成图表js代码,看一下是否能行。
    izoabr
        12
    izoabr  
       2014-07-25 17:47:33 +08:00
    @shoumu 方不方便把你抓出来的页面的图发出来我看看呀?logo之类的可以打下马赛克
    shoumu
        13
    shoumu  
    OP
       2014-07-25 18:25:37 +08:00
    @izoabr 怎么给你看
    izoabr
        14
    izoabr  
       2014-07-25 22:13:00 +08:00
    @shoumu 别光给我看呀,贴图,把图片地址单独一行回复上来,大家一起看看嘛。
    zhanglp888
        15
    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
        16
    shoumu  
    OP
       2014-07-26 09:34:49 +08:00
    shoumu
        17
    shoumu  
    OP
       2014-07-26 09:36:27 +08:00
    @zhanglp888
    我试试,但是我只想要自动获取网页中的图表部分,而图表的位置是变化的
    izoabr
        18
    izoabr  
       2014-07-26 11:24:35 +08:00   1
    感谢@zhanglp888,我之前也用过这个,效果不错,但一直没想起来叫什么。
    @shoumu 如果你仅仅想弄图表,并且这个东西是比较固定的,那你就干脆自己生成就好了,他这个图表要么是一个后台现成的图片,要么是flash之类的通过json或者xml提供数据源实时生成,我也用过js版本的,都可以。你看看他的源码,是用什么生成的,干脆直接模仿,模仿一个这样的网页出来,就固定了,你每次截取这个你自己定制的页面就好了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2566 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 04:13 PVG 12:13 LAX 21:13 JFK 00:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86