phantomJS简单使用方法
概述
有时,我们需要浏览器处理网页,但并不需要浏览,比如生成网页的截图,抓取网页数据等操作。PhantomJS的功能,就是提供一个浏览器环境的命令行接口,你可以把它看做一个“虚拟浏览器”,除了不能浏览,其它与正常浏览器一样。它的内核是webkit引擎,不提供图形界面,只能在命令行中使用。webpage模块
webpage模块是PhantomJS的核心模块,用于网页操作。
|
|
上面代码表示加载PhantomJS的webpage模块,并创建一个实例。
- open()方法
该方法用于打开具体的网页
|
|
上述代码中,open()方法,用于打开具体的网页。他接受两个参数。第一个参数是网页的网址,第二个参数是回调函数,网页打开后该函数将会运行,它的参数是一个表示状态的字符串,如果打开成功就是success,否则就是fail。
只要接受到服务器返回的结果,PhantomJS就会报告网页打开成功,而不管服务器是否返回404或者500错误。
open方法默认使用GET方法,与服务器通信,但是也可以使用其它方法。
|
|
上面代码中,使用post方法向服务器发送数据。open方法的第二个参数来指定http方法,第三个参数用来指定该方法所要使用的数据。
open方法还允许提供配置对象,对HTTP请求进行更详细的配置。
|
|
- evalute()方法
evalute方法用于打开网页后,在页面中执行JavaScript代码。
|
|
网页内部的console语句,以及evalute方法内部的console语句,默认不会显示在命令行。这时,可以用onConsoleMessage方法监听这个事件,进行处理。
|
|
- includeJs()
includeJs方法用于页面加载外部脚本,加载结束后就调用指定的回调函数。
|
|
上面的例子在页面中注入jquery脚本,然后点击所有的按钮。需要注意的是,由于是异步加载,所以Phantom.exit()语句要放在page.includeJs()方法的回调函数之中,否则页面会过早移除。
- render()方法
render方法用于将网页保存成图片,参数就是指定的文件名。该方法根据后缀名,将网页保存成不同的格式,目前支持PNG,GIF,JPEG和PDF。
|
|
该方法还可以接受一个配置对象,format字段用于指定图片格式,quality字段用于指定图片质量,最小为0,最大为100。
- viewportSize,zoomFactor
viewportSize属性指定浏览器视口的大小,即网页加载的初始浏览器窗口大小。
|
|
viewportSize的height字段必须指定,不可省略。
zoomFactor属性用来指定渲染时页面的放大系数,默认是1。
|
|