PhantomJS
1. 什么是PhantomJS?
PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。
目前都是基于命令行的调用,还没有代码直接调用,java只能通过Runtime.getRuntime().exec("exefile");执行命令。
2. PhantomJS能做什么?
动态执行js脚本、网页截图、自动化网页测试。
3. PhantomJS下载包example里面的例子介绍
arguments.js 获取输入参数 child_process-examples.js 启动子线程执行命令行命令 colorwheel.js 执行canvas代码,画一个圆,并输出png图片 countdown.js 倒计时demo detectsniff.js 监听浏览器的navigator属性,看网页有没有读取这个属性 echoToFile.js 写文件操作 features.js 显示浏览器支持的和不支持的特性 injectme.js 注入js代码 loadspeed.js 统计请求网页需要的时间,并不一定执行完了js loadurlwithoutcss.js 不请求css文件 modernizr.js 浏览器特性功能检测 module.js 调用模块 netlog.js 监听request和response netsniff.js 请求数据统计 openurlwithproxy.js 通过代理服务器访问 outputEncoding.js 设置输出字符的编码方式 page_events.js 事件监听 pagecallback.js 可能在网页里面调用window.callPhantom通知给phantomjs,非常实用。 phantomwebintro.js 抓取网页的内容 post.js 发送post请求 postjson.js 发送post请求(Data是JSON) postserver.js 一台服务器和一个post请求 printenv.js phantomjs的环境变量 printheaderfooter.js 这个不知道是干嘛的,而且还有一个错误,第67行要加一个var,也就是var paperSize = page.paperSize; printmargins.js 设置截图的边距 rasterize.js 截图 render_multi_url.js 多页面截图 responsive-screenshot.js 多个截图尺寸 run-jasmine.js 定时检测页面是否加载完成 run-jasmine2.js 定时检测页面是否加载完成 run-qunit.js 定时检测页面是否加载完成 scandir.js 扫描目录下的文件 server.js 创建一个服务器 serverkeepalive.js 创建一个keepalive的服务器 simpleserver.js 创建一个简单服务器 sleepsort.js 这个也不知道是干嘛的 stdin-stdout-stderr.js 读取控制台信息 universe.js 标准模块写法 unrandomize.js 在onInitialized里重新定义js原始函数,比如Math.random useragent.js 修改userAgent的值 version.js 显示phantomjs版本 waitfor.js 定时检测页面是否加载完成 walk_through_frames.js 主frame和子frame之间切换
9. PhantomJS技巧
增加--ignore-ssl-errors=true设置,客户端无证书也可以访问。不加就访问不了。
phantomjs.exe --ignore-ssl-errors=true fetch_web_content.js https://localhost/index.html
posted on 2017-05-05 22:14 angelshelter 阅读(212) 评论(0) 编辑 收藏 举报