CSDN_投票评选_JS_分析脚本
作者: 铁锚
日期: 2013年12月31日
如题, 使用说明如下:
1. 原创图书 http://special.csdn.net/book2013/yc.html 2. 引进图书 http://special.csdn.net/book2013/yj.html // // 采用chrome 打开以后,右键点击页面,选择审查元素 // 随后切换到console控制台 // 复制js文件的所有代码,在控制台执行即可
脚本如下:
!(function(){
// 创建script元素
var sc = document.createElement("script");
// 设置属性
sc.src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js";
// 设置加载事件回调
sc.onload = pickVote;
// 添加到 body
document.body.appendChild(sc);
//
function Vote(id, name, ding_num){
this.id = id;
this.name = name;
this.ding_num = ding_num;
};
Vote.prototype = {
toString : function(){
return this.ding_num + "\t" + this.name ;
}
};
//
function pickVote(e){
if(!$){
alert("很抱歉,新浪服务器打盹了.");
return false;
}
//
var allbook = $(".container .list");
var len = allbook.length;
//
var allVote = [];
//
!!allbook.each(function(i,v){
var $this = $(this);
//
var $name = $("p.black strong",$this);
var $ding_num = $(".ding_num", $this);
// 书名
var name = $name.text();
var ding_num = $ding_num.text();
//
ding_num = parseInt(ding_num);
//
var vote = new Vote(++i, name, ding_num);
allVote.push(vote);
});
function desc(x, y){
if (x.ding_num > y.ding_num) {
return -1;
} else if (x.ding_num < y.ding_num){
return 1;
} else {
return 0;
}
};
// 排序
allVote = Array.prototype.sort.call(allVote, desc);
// 输出信息
var title = document.title;
console.info(title+": 排名:");
console.info(allVote.join("\n"));
};
}()
);
资源下载地址:
JS脚本抓取数据分析示例
-------------------------------------------------------------------------------------------------------------------
新加了一个测试ITEYE的防DDOS的示例:
使用说明:
1. 首先 chrome 打开iteye的需要刷新的页面;这样才不会出现跨域。 2. 然后打开console 3. 粘贴执行刷新的JS,然后让页面一直开着。 如果你想要自动刷新功能,可以使用傲游浏览器。当然,好像搜狗也支持,在标签页上点右键,自动刷新即可.
代码如下:
(
function(){
// 获取当前地址
var url = window.location.href;
var timeout = 0.2 * 1000;
var iframe = document.createElement("iframe");
iframe.src = ""+url;
// 用 iframe来定时刷新
window.document.body.appendChild(iframe);
iframe.src= "";
var tms = 0;
var itv = window.setInterval(function(){
iframe.src= "";
iframe.src = ""+url;
tms += 1;
if(tms % 500 < 1){
console.info("tms="+tms);
}
}, timeout);
}()
);
一个在浏览器测试移动APP的API接口并发的不规范代码:
(function() {
//
var $this = $('#apitestform');
// 密码加密
var password_clear = $("#password_clear").val() || "";
$("#password_md5").val(hex_md5(password_clear));
// 新密码加密
var newpassword_clear = $("#newpassword_clear").val() || "";
$("#newpassword_md5").val(hex_md5(newpassword_clear));
var data = $('#apitestform').serialize();
//
window.all_time = 0;
window.all_num = 0;
window.success_num = 0;
window.failure_num = 0;
//
var config = {
url : $this.attr("action"),
data : data,
type : "POST",
dataType: "json",
beforeSend : function() {
},
complete : function(xhr,result) {
var text = xhr.responseText;
var js = JSON.parse(text);
if(js && (1 === js.success)){
success_num += 1;
} else {
failure_num += 1;
}
var pref = window.time || 0;
var current = new Date();
var time = current.getTime() - pref.getTime();
window.all_time += time;//current.getTime() - window.start_time.getTime();
var avg_time = Math.round(all_time / all_num);
//
var log = "all_num="+all_num+"\n"
+"success_num="+success_num+"\n"
+"failure_num="+failure_num+"\n"
+"time="+time+" ms\n"
+"all_time="+all_time+" ms\n"
+"avg_time="+avg_time+" ms\n"
;
$("#apitestresult").text(log);
//
window.setTimeout(loop, 0.01 * 1000);
}
};
//
function loop(){
<span style="color: rgb(0, 128, 255); font-family: Consolas, 'Lucida Console', monospace; font-size: 12px; white-space: pre-wrap;">if(true == window["stop_loop"]){ return;}</span>
window.all_num += 1;
window.time = new Date();
jQuery.ajax(config);
}
//
window.startTime = 0;
window.setTimeout(loop, 0.01 * 1000);
}());
如果确实要压力测试 移动API接口的 性能,请使用JMeter 工具来进行测试; 如果要停止上面的代码循环,只要在控制台执行 window["stop_loop"]=false; 即可
百度的节操:
招聘信息,使用chrome,也就是google浏览器,打开百度,或者百度百科,右键,审查元素(当然,也可以直接按F12打开调试工具),然后切换到 Console 控制台,即可看到其招聘信息:
显示效果如下:
图1 度娘的节操
查找出来的代码及分析如下,其实好像百度知道,百度百科的更牛X一些,可以在控制台显示图片了都.
// 保证即便 try 语句块内部的代码执行出错,也不会中断后面的JS代码的执行
try {
// if 判断,短路与; 检查是否有console这个(控制台)对象,以及 log 这个日志方法
// Chrome和 Firefox 的 console 一般包含:
// console.error("错误信息")
// console.info("常规信息")
// console.debug("调试信息 %c yes",'color:red');
// %c 就类似于 C 语言 printf 的
if (!!(window.console && window.console.log)) {
console.log("程序?\n节操?\n软件?\nCSDN写博客不方便 orz \n技术! \n不等于实力。\n");
console.log("邮箱: %c renfufei@qq.com(铁锚)", "color:red");
console.log("个人博客:http://blog.csdn.net/renfufei")
}
} catch(e) {
}
下面的是 百度知道的效果:
图2 百度知道的节操图
其代码如下,其实 \u 就是Unicode的字面量编码形式而已,没多少先进的.
if (window.console) {
console.log(
"\n\n%c",
// 注意上面这个逗号,表明括号内是2个参数
"font-size:0;line-height:50px;padding-top:"
+ 46 + "px; padding-left:"
+ 137 + "px;background:"
+ ""
+ ";background-repeat:no-repeat;"
);
// 上面的那个 %c 将一些字符以原生格式拼进去了,而不是被当做普通的字符串
console.log("\u671f\u5f85\u4f60\u7684\u52a0\u76df\u3002http://zhidao.baidu.com/misc/more/joinus")
console.log("\u8bf7\u5728\u90ae\u4ef6\u4e2d\u6ce8\u660e%c\u6765\u81ea:console", "color:red;font-weight:bold;");
}
CSDN_投票评选_JS_分析脚本的更多相关文章
- linux实用的日志分析脚本
日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 218.19.140.242 – - [10/Dec/2010:09:31:17 +0800] “GET /query/ ...
- python编写网络抓包分析脚本
python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...
- BASE64编码原理分析脚本实现及逆向案例
在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理你又了解多少?今天小编带大家了解一下Base64编码原理分析脚本实现及逆向案例的相关内容. 01编码由来 数 ...
- Linux服务器性能日志收集和分析脚本(转)
最近老大要求分析服务器的性能数据,找到服务器运行的性能瓶颈,结果花了两天时间,写了两个脚本可以生成日志并可以进行数据提取,最终生成数据可以放到excel生成报表.过程中也学到了不少shell编程技术. ...
- linux常用的日志分析脚本
linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...
- linux系统web日志分析脚本
linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...
- MySQL 数据库慢查询日志分析脚本
这个脚本是基于pt-query-digest做的日志分析脚本,变成可视化的格式. 目录结构是 ./mysql_data/log./mysql_data/log/tmp./slow_query # co ...
- 【转载】ltp压力测试结果分析脚本
博客园 首页 新随笔 联系 管理 订阅 随笔- 8 文章- 0 评论- 0 ltp压力测试结果分析脚本 最近工作性质发生了改变,在做操作系统方面的测试.接手的第一个任务是做ltp stres ...
- Nginx日志分析脚本
目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...
随机推荐
- Android自定义View(CustomCalendar-定制日历控件)
转载请标明出处: http://blog.csdn.net/xmxkf/article/details/54020386 本文出自:[openXu的博客] 目录: 1分析 2自定义属性 3onMeas ...
- 使用Boost program_options控制程序输入
简介 很多人使用界面来输入数据,本文的程序介绍如何使用Boost的program_options控制输入. 程序中使用了: 1. 短选项 2. 可以指定多个参数的选项 程序 #include < ...
- RDO Stack: Install newton in the dashboard can't create images
Issue: When you want to create an image in RDO stack newton version, you may encounter following err ...
- linux系统性能监控--I/O利用率
尽管整体的处理器速度. 内存大小以及 I/O执行速度在不断提高,但 I/O操作的吞吐率和延迟性能仍然要比等价的内存访问操作低多个数量级.另外,由于许多工作负荷都拥有重要的I/O组件,I/O处理很容易成 ...
- 潜谈IT从业人员在传统IT和互联网之间的择业问题(上)-传统乙方形公司
外包能去吗?项目型公司如何?甲方比乙方好?互联网公司就一定好吗? 相信许多从业者在经历了3-5年的工作期后都会带着这样的疑问或者疑惑. 2012年-2014年间,曾经面试过500人,亲身面试的也有15 ...
- java中八种基本数据类型以及它们的封装类,String类型的一些理解
在我们面试或者考试过程中经常会考到八种基本数据类型以及它们的封装类,那么有哪八种基本数据类型呢?它们的封装类又是什么呢? 首先,八种基本数据类型分别是:int.short.float.double.l ...
- 【mybatis深度历险系列】mybatis的框架原理+入门程序解析
在前面的博文中,小编介绍了springmvc的相关知识点,在今天这篇博文中,小编将介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和 ...
- Android简易实战教程--第二十七话《自定义View入门案例之开关按钮详细分析》
转载此博客请注明出处点击打开链接 http://blog.csdn.net/qq_32059827/article/details/52444145 对于自定义view,可能是一个比较大的 ...
- iOS编程Cookbook第19章最后一个例子不能正常工作的解决办法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Cookbook的第19章的11节中所要解决的是在App中显 ...
- 为何不能在viewDidLoad方法中显示其他视图
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 你可以使得当视图控制器(view controller)显示自 ...