V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
leohxj
V2EX  ›  JavaScript

phantomjs有人使用吗, 怎么样?

  •  
  •   leohxj · 2013-06-12 22:58:33 +08:00 · 11997 次点击
    这是一个创建于 4209 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先问一下,windows下如何安装?为什么我通过npm安装不了,直接下载.exe需要加入到PATH中吗?
    这个工具主要的作用和用途是什么呢?
    18 条回复    2014-09-23 12:56:24 +08:00
    seeker
        1
    seeker  
       2013-06-12 23:32:59 +08:00   ❤️ 1
    用过,不过不是windows下用的。
    官方说是Headless WebKit with JavaScript API。
    所谓headless就是没有菜单,收藏夹,没有窗口。
    with javascript api就是可以通过js来操作。

    经常拿来做web测试用。
    我用它来做过简单的爬虫,它可以到页面植入自己的js,于是可以用jquery的css选择器来抓去想要的内容。为啥不直接抓,非得用它?因为页面内容如果是ajax load的直接抓就拿不到了。
    keakon
        2
    keakon  
       2013-06-13 00:47:00 +08:00   ❤️ 1
    用过,发现抓出来的图比 Chrome 的文字浅一些,就换掉了。
    maja
        3
    maja  
       2013-06-13 08:23:30 +08:00   ❤️ 1
    phantomjs不错的,做一些抓图、测试之类的很好。中文装wqy就可以

    @keakon 可以修改字体

    @seeker ajax load的可以设置延迟启动,在.ready之后在抓,或者等到你需要的dom存在了在抓,都可以。

    无耻的广告: 我的 http://www.screenshotbot.com 就用的这个
    RelativeLayout
        4
    RelativeLayout  
       2013-06-13 09:57:50 +08:00   ❤️ 1
    可以试一下casperjs 可以说是phantomjs的库把。
    leohxj
        5
    leohxj  
    OP
       2013-06-13 10:12:42 +08:00
    @keakon
    @RelativeLayout
    @maja
    大家在什么平台下?我windows8+node 1.10,通过npm安装不了。。。
    maja
        6
    maja  
       2013-06-13 10:14:17 +08:00   ❤️ 1
    @leohxj hmm, phantomjs? 直接下载binary的安装包就可以了啊
    leohxj
        7
    leohxj  
    OP
       2013-06-13 11:15:52 +08:00
    @maja 然后把phantomjs.exe添加到PATH中吗?
    RelativeLayout
        8
    RelativeLayout  
       2013-06-13 11:20:40 +08:00   ❤️ 1
    @leohxj 我在mac下的。你再研究下windows下的装法。
    seeker
        9
    seeker  
       2013-06-13 12:27:26 +08:00   ❤️ 1
    @maja 我没说清楚。我的意思是:传统的爬虫,不好抓ajax的。我知道如何用phantomjs抓ajax load的。
    leohxj
        10
    leohxj  
    OP
       2013-06-13 12:54:59 +08:00
    @RelativeLayout 你mac下直接从官网下载的吗,还是通过npm安装的?
    TempAccount
        11
    TempAccount  
       2013-06-13 13:08:47 +08:00   ❤️ 1
    phantomjs是一个和node.js无关的独立程序, 你怎么想到用npm安装的... 直接上官方下可执行文件就行了
    leohxj
        12
    leohxj  
    OP
       2013-06-13 13:33:41 +08:00
    @TempAccount 因为node也有模块, grunt中会使用到。所以如果我加载了phantomjs到PATH中,npm又安装了同名的命令,不知道grunt调用的时候会不会冲突。
    em91
        13
    em91  
       2013-06-13 15:36:06 +08:00   ❤️ 1
    感觉casperjs的写法更舒服一些,基于phantomjs
    thursday
        14
    thursday  
       2013-06-13 18:12:28 +08:00   ❤️ 1
    casperjs 的在linux 上乱码 支付框框的 问题 搞死了快
    keakon
        15
    keakon  
       2013-06-13 19:37:46 +08:00
    @leohxj OS X、Debian 和 Ubuntu 都试过。

    @maja 设了字体,就是浅一点。
    AlfredZhao
        16
    AlfredZhao  
       2013-06-13 21:22:45 +08:00
    1楼正解...我用它做过截图的,不过在截图上表现不如cutycapt
    duhastmich
        17
    duhastmich  
       2013-06-26 21:27:36 +08:00
    老早之前一个项目里用它来生成pdf。。服务器上没有X,设置起来略麻烦, 只是做测试的话,还有个zombiejs 不是基于phantomjs的
    bobkingdom
        18
    bobkingdom  
       2014-09-23 12:56:24 +08:00 via iPhone
    phantomjs怎么支持指定字体截图啊?网页是微软雅黑,截图出来的却是别的字体,还有大有小。这应该是个高分题吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2741 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.