phantomjs使用笔记

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,插入脚本,截取整个页面保存为图片

相关文章

这个问题和curl无法访问https资源是类似的,现在curl可以访问https资源,但是使用pecl安装扩展的时候不行...
在浏览器输入chrome://flags/回车,找到Omnibox UI Hide Steady-State URL Scheme and Trivial Subdoma...
方法一: 我们都知道Ubuntu有一个专门用来安装软件的工具apt,我们可以用它来全自动安装arm-linux-gcc。...
中文的windows下的cmd默认使用GBK的编码,敲代码时,页面使用的是UTF-8(65001),而powershell控制台默认...
提示错误: arm-linux-gcc:Command not found PATH里有/usr/oca/arm/bin,但是make的时候,就是找不到 a...
我在Graph API开发中用的最多的测试工具就是Graph Explore,这个是微软开发的网页版的Graph API的测试工...