PhantomJS从入门到放弃

https://blog.csdn.net/libsyc/article/details/78199850

PhantomJS是什么?

PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。

PhantomJS官方地址:http://phantomjs.org/。
  PhantomJS官方API:http://phantomjs.org/api/。
  PhantomJS官方示例:http://phantomjs.org/examples/。
  PhantomJS GitHub:https://github.com/ariya/phantomjs/

PhantomJS下载与安装

大家可根据自己的系统运行环境来安装相应的版本. 这里我以Window7来作演示.


image.png

下载完成后解压文件,建议为方便使用,单独放在一个文件夹里,如放在D:\workspace\phantomjs里。

到这里,你已经成功下载安装好PhantomJS了。那么,打开D:\workspace\phantomjs\bin文件夹,双击运行phantomjs.exe,出现如下界面,那么你就可以运行JS代码了。


image.png

可以考虑将D:\workspace\phantomjs\bin路径配置到环境变量中.方便日后使用

第一个PhantomJS小程序

// demo.js
var page = require('webpage').create();
phantom.cutputEncoding = 'gbk';
page.open("https://www.jianshu.com", function(status) {
  if(status === "success") {
    page.render("jianshu.png");
  } else {
    console.log("Page failed to load.");
  };
phantom.exit();
});

然后在cmd命令行中, 切换到demo.js所有目录运行demo.js.

image.png

demo.js会将抓取到页面的截图保存到当前页面
如上图所示的 jianshu.png.

PhantomJS核心API

  • webpage:它的作用主要是提供了一套可以访问和操作web文档的核心方法,包括操作DOM、事件捕获、用户事件模拟等等。
  • system:该模块提供了一些与操作系统相关的接口,例如访问操作系统信息、访问系统环境变量、接受命令行参数等等与程序执行相关的系统信息。
  • fs:即FileSystem。熟悉NodeJS的朋友都知道,NodeJS也内建了相关的核心模块。fs提供了执行文件I/O操作的标准接口,如读写文件、删除文件等。它使得你持久化一些文件(如logfile等)变得非常容易。
  • webserver:如其名字一样,你可以基于它来实现自己的webserver,用来处理请求并且执行PhantomJS代码等。

其它一些配置信息,执行PhantomJS的命令格式如下

phantomjs [switches] [options] [script] [argument [argument [...]]]

打开debug模式(该模式用于开发,可提供必要提示信息):

phantomjs --debug=yes demo.js

设置cookie路径:

phantomjs --cookie-file=cookie.txt demo.js

操作page content

事件处理

抓取页面

文件相关操作

模块化

与jQuery等第三方结合

其它

你可能感兴趣的:(PhantomJS从入门到放弃)