前言

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. C++ KMP文本匹配

    代码如下: 环境为VC #include <iostream> #include <algorithm> #include <string> #include &l ...

  2. 因为信仰,油画专业的他自学开发进击阿里技术P9

    大约在1年以前,阿里云视频云团队来了一位热心和气.爱好广泛的老干部新同学,他就是资深技术专家郝冲,花名和招,寓意“和气招财”. 有人说程序员只喜欢安静地写代码,和招偏偏一个户外运动爱好者.他擅长滑雪, ...

  3. .Net Core 使用 Swagger 提供API文档

    1.运行环境 开发工具:Visual Studio 2017 JDK版本:.NET Core 2.0 项目管理工具:nuget 2.GITHUB地址 https://github.com/nbfujx ...

  4. JS中算法之排序算法

    1.基本排序算法 1.1.冒泡排序 它是最慢的排序算法之一. 1.不断比较相邻的两个元素,如果前一个比后一个大,则交换位置. 2.当比较完第一轮的时候最后一个元素应该是最大的一个. 3.按照步骤一的方 ...

  5. 【LeetCode 85】最大矩形

    题目链接 [题解] 把所有的"1"矩形分成m类. 第j类的矩形.他的右边界跟第j列紧靠. 那么. 我们设f[i][j]表示(i,j)这个点往左最长能延伸多少个数目的"1& ...

  6. The shortest problem(hdu,多校

    The shortest problem Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  7. 使用mysql应该注意的细节

    一.表及字段的命名规范 1.可读性原则 使用大写和小写来格式化的库对象名字以获得良好的可读性. 例如:使用CustAdress而不是custaddress来提高可读性.(这里注意有些DBMS系统对表名 ...

  8. 同源策略和跨域资源共享(CROS)

    同源策略 Same-origin policy - Web security | MDN 跨站资源共享 Cross-Origin Resource Sharing (CORS) - HTTP | MD ...

  9. xshell设置选中复制,右击粘贴功能

    . 设置选中复制: 工具--->选项--->键盘和鼠标--->(然后根据下图设置保存即可) 2. 设置ctrl + v 粘贴功能: 工具--->选项--->键盘和鼠标-- ...

  10. git---从已有分支拉出新分支

    文章目录 开发中,经常需要从一个已有的分支拉出一个新分支,去这个新分支做一些开发改动,这里示例为: 从master分支,重新拉取出一个新的分支,名字为dev,具体命令如下: 切换到被copy的分支(m ...