作者: 铁锚

日期: 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_分析脚本的更多相关文章

  1. linux实用的日志分析脚本

    日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 218.19.140.242 – - [10/Dec/2010:09:31:17 +0800] “GET /query/ ...

  2. python编写网络抓包分析脚本

    python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...

  3. BASE64编码原理分析脚本实现及逆向案例

    在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理你又了解多少?今天小编带大家了解一下Base64编码原理分析脚本实现及逆向案例的相关内容.   01编码由来 数 ...

  4. Linux服务器性能日志收集和分析脚本(转)

    最近老大要求分析服务器的性能数据,找到服务器运行的性能瓶颈,结果花了两天时间,写了两个脚本可以生成日志并可以进行数据提取,最终生成数据可以放到excel生成报表.过程中也学到了不少shell编程技术. ...

  5. linux常用的日志分析脚本

    linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...

  6. linux系统web日志分析脚本

    linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...

  7. MySQL 数据库慢查询日志分析脚本

    这个脚本是基于pt-query-digest做的日志分析脚本,变成可视化的格式. 目录结构是 ./mysql_data/log./mysql_data/log/tmp./slow_query # co ...

  8. 【转载】ltp压力测试结果分析脚本

    博客园 首页 新随笔 联系 管理 订阅 随笔- 8  文章- 0  评论- 0  ltp压力测试结果分析脚本   最近工作性质发生了改变,在做操作系统方面的测试.接手的第一个任务是做ltp stres ...

  9. Nginx日志分析脚本

    目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...

随机推荐

  1. Node.js 模块

    稳定性: 5 - 锁定 Node 有简单的模块加载系统.在 Node 里,文件和模块是一一对应的.下面例子里,foo.js 加载同一个文件夹里的 circle.js 模块. foo.js 内容: va ...

  2. Go语言-通道类型

    通道(Channel)是Go语言中一种非常独特的数据结构.它可用于在不同Goroutine之间传递类型化的数据,并且是并发安全的.相比之下,我们之前介绍的那些数据类型都不是并发安全的.这一点需要特别注 ...

  3. pyinstaller 工具起步

    准备 依赖 pyinstaller下载 语法 核心命令 可选项 实战 md2htmlpy 使用pyinstaller 其他测试 -D选项 --icon选项 遇到错误怎么办 总结 继上次的那个Pytho ...

  4. Bootstrap3 栅格系统-实例:手机、平板、桌面

    <div class="row"> <div class="col-xs-12 col-sm-6 col-md-8">.col-xs-1 ...

  5. Weblogic 12c 负载均衡和session复制

    在上一篇,我们介绍了weblogic集群的部署和session的复制,如何将请求负载均衡到这个三个服务器上呢? 这里提供两种方式:(1)weblogic自带的proxy代理        (2) ng ...

  6. rbac数据库设计

    1 rbac数据库设计 RBAC基于资源的访问控制(Resource-Based Access Control)是以资源为中心进行访问控制分享牛原创,分享牛系列,分享牛.rbac 用户角色权限资源表如 ...

  7. PHP+MySQL 分页那点事

    分页技术随处可见,这可以算得上是最为基础的网站功能了.于是今天尝试着用PHP来实现一个分页的小例子. 准备工作 环境准备 Apache MySQL PHP 工作环境 数据库准备 建库 建表 预存数据 ...

  8. VBA find方法

    Sub Sample() Dim sfzs As New Collection Dim ws, wbs, dbs As Worksheet Dim r As Long Set ws = ThisWor ...

  9. 在代码中写view 的长宽高等

    获得资源的id的另一种方法 int layoutRes = getResources().getIdentifier("pager_view" + i, "layout& ...

  10. 六星经典CSAPP笔记(2)信息的操作和表示

    2.Representing and Manipulating Information 本章从二进制.字长.字节序,一直讲到布尔代数.位运算,最后无符号.有符号整数.浮点数的表示和运算.诚然有些地方的 ...