zoukankan      html  css  js  c++  java
  • PhantomJS

    一、任务描述

      本实验任务主要对PhantomJS进行一些基本操作,通过完成本实验任务,要求学生熟练掌握PhantomJS的操作,并对PhantomJS的基本操作进行整理并填写工作任务报告。

    二、任务目标

    1、掌握PhantomJS的使用

    三、任务环境

    Ubuntu16.04、Python2.7

    四、任务分析

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

    五、任务实施

    步骤1、环境准备

      右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。

      通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。

    图1 切换目录

      【mkdir phantomJSCode】在home目录下创建phantomJSCode文件夹。

    图2 创建文件夹

    步骤2、PhantomJS操作

      【cd phantomJSCode】切换到phantomJSCode目录下,【vim helloworld.js】回车后创建一个名为helloworld的JavaScript文件。

    图3 创建JavaScript文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      第一句是在控制台输出“Hello World!”,第二句是终止phantom的运行,不然程序会一直运行,不会停止。

    图4 便捷JavaScript文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【phantomjs helloworld.js】执行helloworld的JavaScript文件。

    图5 运行JavaScript文件

      通过PhantomJS,一个网页可以被加载、分析和通过创建网页对象呈现。

      【vim pageload.js】回车后创建一个名为pageload的JavaScript文件。

    图6 创建JavaScript文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      首先用webpage模块创建一个page对象,然后通过page对象打开http://passport.shiyanbar.com/网址,如果请求响应成功,则通过render方法将当前的页面保存为shiyanbar.png图片。

    图7 编辑JavaScript文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【phantomjs pageload.js】执行pageload的JavaScript文件。

      会发现响应成功,在目录下生成一个名为shi shiyanbar.png图片,正是实验吧的登录界面。

    图8 运行JavaScript文件

      除了打开网页截图之外,也可以对网页进行测试。

      【vim loadspeed.js】回车后创建一个名为loadspeed的JavaScript文件。

    图9 创建JavaScript文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      首先使用webpage模块创建一个page对象,使用system模块获取系统对象system,并声明两个变量t和address,用来保存时间和传入参数。如果传入的参数的长度等于1,说明要加载的地址没有传入,进行提示并退出phantom。为什么等于1,因为phantomjs loadspeed.js 第一个参数是loadspeed.js。接着获取当前的时间,然后打开网页,获取加载完成后的时间,进行相减即可。

    图10 编辑JavaScript文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【phantomjs loadspeed.js】执行loadspeed的JavaScript文件。

    图11 运行JavaScript文件

      为了评估网页中的JavaScript代码,可以利用evaluate。这个执行时“沙盒式”的,不会去执行网页外的JavaScript代码。evaluate方法可以返回一个对像,然后返回值仅限于对象。不能包含函数(或闭包)。

      【vim evaluate.js】回车后创建一个名为evaluate的JavaScript文件。

    图12 创建JavaScript文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

      通过document.title获取网页的标题。

    图13 编辑JavaScript文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【phantomjs evaluate.js】执行evaluate的JavaScript文件。

      得到网页的标题为登录实验吧。

    图14 运行JavaScript文件

      PhantomJS可以对视图进行缩放和裁剪。通过【vim pageload.js】对pageload.js进行改动,修改内容如下。

      PhantomJS既可以将页面转化为不同的文件格式,还可以对视图进行缩放和裁剪,主要用到page对象中两个非常重要的属性:viewportSize和clipRect。viewportSize是视区的大小,起作用可以看做是将打开的浏览器窗口进行缩放,clipRect是在这个视区中裁剪矩形的大小,需要四个参数,前两个基准点,后两个参数是宽高。

    图15 编辑JavaScript文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【phantomjs pageload.js】执行pageload的JavaScript文件。
    【ls】同级目录下生成shiyanbar.pdf文件

    图16 运行JavaScript文件

      由于PhantomJS允许对网络流量进行检查,因此适合对网络行为和性能进行各种分析。当页面从远程服务器请求资源时,可以通过onResourceRequested和onResourceReceived回调跟踪请求和响应。

      【vim netmonitor.js】回车后创建一个名为netmonitor的JavaScript文件。

    图17 创建JavaScript文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。
    当接受到请求时,可以通过改写onResourceRequested和onResourceReceived回调函数来实现接收到资源请求和资源接受完毕的监听

    图18 编辑JavaScript文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【phantomjs netmonitor.js】执行netmonitor的JavaScript文件。

      运行结果会打印出所有资源的请求和接收状态,以JSON格式输出。

    图19 运行JavaScript文件
     
  • 相关阅读:
    年少时的"胡思乱想"
    daemon框架
    MVC框架,see again
    《Redis设计与实现》读书笔记
    小胖妞洗发水广告
    项目视图 Project Browser
    Unity 基础
    Unity手册-Unity概述
    rabbitmq 命令&& rabbitmq教程(一)
    C#动态方法调用 提高程序的扩展性
  • 原文地址:https://www.cnblogs.com/yu-1104/p/9050403.html
Copyright © 2011-2022 走看看