作者: 铁锚
日期: 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脚本抓取数据分析示例
-------------------------------------------------------------------------------------------------------------------
使用说明:
- 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;");
- }