前言

phantomjs是一个无界面浏览器,用来操作web页面的一个工具,比如登录,提交表单等等。

语法框

//创建一个浏览器对象
var page = require('webpage').create(); //传参部分
//var = system = require('system');
//检查参数长度 //if (system.args.length === 1){}
//console.log('Usage: phantomfs iframe.js <some URL>');
// phantom.exit();}
//参数获取 //var address ; //address = system.args[1]; //日志输出编码 phantom.outputEncoding="gbk";
//web页面打开操作
page.open("url",function(status){
//输出页面标题
  console.log(page.title);
//截图...
page.render("f51.png") if(status == "success"){ //此处可以写js 代码了。注意,此处的代码是并行执行的,要用setTimeout处理,如果多次调用写多个,延迟时间 平行顺延...
setTimeout(function(){  page.evaluate{
//真正操作页面js代码的地方//好像不能用for指令,我没操作成功
if ( typeof(jQuery) == "undefined" )
{
// 如果没有jquery,远程加载一个
page.injectJs('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'
);
} }; },2000); setTimeout(function(){ //截图
page.render("end10101010.png") //退出... phantom.exit(0);
console.log("Page failed to load."); },4000); } else{
//截图
page.render("end10101010.png") //退出... phantom.exit(0);
console.log("Page failed to load.");
} });

html元素遍历常用指令

#加载ifame,假设ID为contentframe

document.getElementById("contentframe").contentDocument

#加载ID

document.getElementById("row_3")

#加载元素

document.getElementsByTagName("td")  //返回值是元组

#支持连续操作

document.getElementById("contentframe").contentDocument.getElementById("row_3").getElementsByTagName("td")[0].getElementsByTagName("input")[0].click()

#获取值

document.getElementById("row_3").[innerText,innerHtml,value];赋值="..."

#jq常用遍历

$("#id...").find("元素,返回查找的元素以后的所有集合").children("元素子元素,返回数组")

#jq 操作iframe

$("iframe_id...").contents().find("").children("")

程序执行

443端口运行方法

phantomjs.exe    --ignore-ssl-errors=yes  hello.js  //heloo.js为语法框里的代码

总结:

参考资料

百度,google...

入门phantomjs的更多相关文章

  1. php结合phantomjs实现网页截屏、抓取js渲染的页面

    首先PhantomJS快速入门 PhantomJS是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, ...

  2. 《Python全栈开发指南》第3版 Alex著(LFXC2018)

    第一章 Python基础——Python介绍&循环语句 1.1 编程语言介绍 1.2 Python介绍 1.3 Python安装 1.4 第一个Python程序 1.5 变量 1.6 程序交互 ...

  3. PhantomJS快速入门

    本文简要介绍了PhantomJS的相关基础知识点,主要包括PhantomJS的介绍.下载与安装.HelloWorld程序.核心模块介绍等.由于鄙人才疏学浅,难免有疏漏之处,欢迎指正交流. 1.Phan ...

  4. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  5. PhantomJS快速入门-无界面浏览器

    https://blog.csdn.net/libsyc/article/details/78199850 PhantomJS快速入门 本文简要介绍了PhantomJS的相关基础知识点,主要包括Pha ...

  6. Node.js 动态网页爬取 PhantomJS 使用入门(转)

    Node.js 动态网页爬取 PhantomJS 使用入门 原创NeverSettle101 发布于2017-03-24 09:34:45 阅读数 8309  收藏 展开 版权声明:本文为 winte ...

  7. phantomjs初入门

    对DOM操作,而调试过程必不可少,对于那些微乎其微的方法,总显得余力不足.在这里PhantomJS就就行了很好的实现. PhantomJS是一个拥有JavaScript API的无界面WebKit 正 ...

  8. 动态爬虫——selenium2搭载phantomjs入门范例

    这是我学习爬虫比较深入的一步了,大部分的网页抓取用urllib2都可以搞定,但是涉及到JavaScript的时候,urlopen就完全傻逼了,所以不得不用模拟浏览器,方法也有很多,此处我采用的是sel ...

  9. phantomJs 快速入门学习 了解大概

    1.hellow程序 一个永远的开头,创建一个文件hello.js.内容如下 //hello.js//在窗口输出信息 console.log('Hellow ,Word'); //退出程序,每个脚本必 ...

随机推荐

  1. Sass-减法

    Sass 的减法运算和加法运算类似,我们通过一个简单的示例来做阐述: 同样的,运算时碰到不同类型的单位时,编译也会报错,如:

  2. Vue----v-if 条件渲染

    先看一个使用vue v-if的小例子 <div id="example"> <p>小明和小李和小新,小月正在捉迷藏此时</p> <p> ...

  3. 几种IO机制区别

    IO的方式通常分为几种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. 一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSock ...

  4. MyCat(1.2)Mycat的安装

    [0]基本环境 OS:CentOS7.5 Software envireonment:JDK1.7.0 Master Software:Mycat1.6.5 Linux Client:CRT 8.0 ...

  5. 数组之间的比较应当用Arrays.equals()

    被坑了,数组之间的比较不能用“==”,应当用Arrays.equals() 如果是原生数组(即数组中的值是几大基本数据类型之一的)之间的比较可以直接用,如果数组中的值不是原生的基本数据类型,那么再使用 ...

  6. 谷歌使用navigator.mediaDevices.getUserMedia 调用摄像头拍照功能,不兼容IE

    <template>     <div>       <!--canvas截取流-->       <canvas ref="canvas" ...

  7. 报数问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

    n = int(input("请输入人数:")) list_p = list(range(1,n+1)) #将所有人放在一个数字里面 count = 0 #设置一个变量,用户计算报 ...

  8. flutter Container组件和Text组件

    在开始之前,我们先写一个最简单的入口文件:     后面,都是在这个结构的基础上面完成的. 由于Container组件和Text组件都是写在body里面的,所以下面,先将body抽离成一个组件的形式. ...

  9. el-tree或者el-table里边的slot-scope传递变量但是没有元素对象解决方法

    传统的是点击一个元素可以通过e.target进行获取,但是对于这种的回调函数里边加个e再进行e.target就获取不到元素了,更获取不到点击的位置那么可以在触发的地方写成箭头函数并且传递一个变量.如下 ...

  10. 前端每日实战:99# 视频演示如何用纯 CSS 创作一个过山车 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/KBxYZg/ 可交互视频 此视频是 ...