入门phantomjs
前言
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的更多相关文章
- php结合phantomjs实现网页截屏、抓取js渲染的页面
首先PhantomJS快速入门 PhantomJS是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, ...
- 《Python全栈开发指南》第3版 Alex著(LFXC2018)
第一章 Python基础——Python介绍&循环语句 1.1 编程语言介绍 1.2 Python介绍 1.3 Python安装 1.4 第一个Python程序 1.5 变量 1.6 程序交互 ...
- PhantomJS快速入门
本文简要介绍了PhantomJS的相关基础知识点,主要包括PhantomJS的介绍.下载与安装.HelloWorld程序.核心模块介绍等.由于鄙人才疏学浅,难免有疏漏之处,欢迎指正交流. 1.Phan ...
- [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)
最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...
- PhantomJS快速入门-无界面浏览器
https://blog.csdn.net/libsyc/article/details/78199850 PhantomJS快速入门 本文简要介绍了PhantomJS的相关基础知识点,主要包括Pha ...
- Node.js 动态网页爬取 PhantomJS 使用入门(转)
Node.js 动态网页爬取 PhantomJS 使用入门 原创NeverSettle101 发布于2017-03-24 09:34:45 阅读数 8309 收藏 展开 版权声明:本文为 winte ...
- phantomjs初入门
对DOM操作,而调试过程必不可少,对于那些微乎其微的方法,总显得余力不足.在这里PhantomJS就就行了很好的实现. PhantomJS是一个拥有JavaScript API的无界面WebKit 正 ...
- 动态爬虫——selenium2搭载phantomjs入门范例
这是我学习爬虫比较深入的一步了,大部分的网页抓取用urllib2都可以搞定,但是涉及到JavaScript的时候,urlopen就完全傻逼了,所以不得不用模拟浏览器,方法也有很多,此处我采用的是sel ...
- phantomJs 快速入门学习 了解大概
1.hellow程序 一个永远的开头,创建一个文件hello.js.内容如下 //hello.js//在窗口输出信息 console.log('Hellow ,Word'); //退出程序,每个脚本必 ...
随机推荐
- webstorm9.0.3 注册码
William 45550-12042010 00001SzFN0n1bPII7FnAxnt0DDOPJA INauvJkeVJBuE5bqLEznccE4tet6tr RiyoMxDK8oDY93t ...
- python基础:1.位、字节、字的关系
1.位,简称b,或bit,比特,数据存储的最小单位.每个二进制数字0或1就是一个位(bit),网络通信常用bps,bit per second ,每秒传输多少位 2.字节,简称byte, 1byte ...
- python 获取文件行数
#如果要统计文件的行数,可以这样写: count = len(open(filepath, 'r').readlines()) #这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作. #可以利用 ...
- pandas模块之读取文件
首先我们来看一个文件 1 男 北京 刘一 我笑 #跳过此行,序号1 2 女 上海 刘珊 你笑 3 男 杭州 刘五 他笑 #跳过此行,序号四 4 女 重庆 刘六 不笑了 下面来分析内容,并使用参数 1 ...
- Spring----事件(Application Event)
1.概述 1.1.Spring的事件 为Bean与Bean之间的消息通信提供了支持: 当一个Bean处理完一个任务后,希望另一个Bean知道并能做出相应的处理,这时我们需要 让另一个Bean ...
- nyoj 78:圈水池 【凸包入门】
题目链接 将所有点按从左至右顺序排序,然后将所有点先从左到右扫描再从右到左扫描,逐渐将凸包轮廓“勾勒”出来 (凸包轮廓满足,轮廓上连续的三个点按先后顺序给出的话呈逆时针方向) 最后删去一个重复的起(终 ...
- 【靶场练习_sqli-labs】SQLi-LABS Page-1(Basic Challenges)
GET篇 Less-1: 1.用order by得出待查表里有三个字段 http://192.168.40.165/sqli-labs-master/Less-1/?id=1' order by 3 ...
- LR之分析
1.Errors(错误统计) 每秒错误数:数值越小越好,通过这个图可以知道,当负载增加的时候,定位何时系统在负载下开始不稳定甚至出错. 2.Transaction(事务) average transa ...
- [CSP-S模拟测试]:旅行(数学+线段树)
题目传送门(内部题12) 输入格式 第一行,一个整数$n$,代表树的点数.第二行,$n$个整数,第$i$个整数是$B_i$,描述排列$B$.接下来$n−1$行,每行两个整数$u,v$,描述一条树边$( ...
- 绕X 轴 Y轴 Z轴旋转的结果
void warp_perspect_3_angle(cv::Mat face, float roll, float yaw, float pitch) { cv::Mat face_img = fa ...