phantomjs简介
phantomjs是一个测试工具,也可以用来写爬虫。可以当作是一个浏览器来使用,只是这个浏览器没有界面,被称为无头浏览器(handless)。
安装
1.官网下载
http://phantomjs.org/
将压缩包解压到D盘phantomjs文件夹下,打开bin目录下的phantom.exe,即可开始使用phantomjs。
最好是把phantomjs添加到系统变量Path中:'D:phantomjs',然后就可以在cmd中直接使用
2.通过npm安装(全局)
npm install phantomjs -g
不建议使用此方法,因为install的phantomjs与node的child-process(子进程模块)支持得不好.安装好了之后不用配置环境变量(前提是你的node配置了NODE_PATH)。
简单的使用
用法有两种,一种命令行,一种打开.exe。
1.打开.exe。
直接打开,会弹出一个cmd,如下:
phantomjs>
然后输入 1+1 回车
phantomjs> 1+1
2
phantomjs>
输入--version
phantomjs> --version
Can't find variable: version
phantomjs://repl-input:1 in global code
表示看版本这种貌似只能用cmd打开。
假设有那么一个js文件:
console.log('phantomjs is so good');
将此文件拖拽到.exe上面,即可打开:
phantomjs is so good
2.命令行打开:
配置好了环境变量就可以使用cmd了。
在cmd输入phantomjs --version
C:\Users\59227\Desktop>phantomjs --version
2.1.1
打开一个js文件phantomjs pt.js
:
C:\Users\59227\Desktop>phantomjs pt.js
phantomjs is so good
phantomjs的大概结构
phantom对象
web page模块
Child Process模块
System模块
file system模块
其中最核心的就是web page模块。
phantom对象关键的API:
phantom.exit()【退出程序,接收一个code参数,可以是任意的整数,比如-1,0,1.但好像传什么整数效果都一样】
phantom.cookie()【获取或设置cookie,建议不要用这个api去设置,还有其他API】
> phantom.addCookie(Object) Boolean:添加cookie值
> phantom.deleteCookie(cookieName) Boolean:删除指定Cookie值
> phantom.clearCookies() :清空所有的cookie
> phantom.cookiesEnabled Boolean:获取或设置是否支持cookie
phantom.injectJs()【把指定的外部JS文件注入到当前环境】
phantom.onError() 【当页面存在js错误,且没有被 page.onError 处理,则会被此handler捕获】
phantom.args()【获取传递给本JS程序的参数,比如:phantomjs pt.js http://baidu.com
就是传递给本程序的参数】
web page模块:
要使用这个模块需要在你的js中导入:
web page模块的API太多了,官方文档:
中文文档:
web page模块的用途就是用来打开一个网页,可以对你要打开的网页进行定制,比如大小,cookie,以及请求的header。还可以对打开的页面进行操作,比如操作dom,插入脚本,截取整个页面保存为图片。