首页 > 其他分享 >查看博客园的总阅读量

查看博客园的总阅读量

时间:2024-10-25 18:02:33浏览次数:7  
标签:const 查看 博客园 resultArray statisticsArray xhr 阅读 var currentDate

打开博客园后台

Link

然后按 F12 进入控制台,接下来输入下面的代码就好啦

/**
    在最后一行修改博客地址用户名就好啦
*/
function countBlogReadings(CnblogsName){
    console.log("正在统计 "+CnblogsName+" 的博客的总阅读量...");

    //任务线程内部的全局变量数组,用于保存数据
    var statisticsArray = [];

    //发送ajax请求博客园
    function getReadData(page){
        //是否还要继续
        var flag = false;

        //使用XMLHttpRequest对象请求博客园
        var xhr = new XMLHttpRequest();            
        xhr.open('GET', "https://www.cnblogs.com/"+CnblogsName+"/default.html?page=" + page, false);//同步
        xhr.setRequestHeader("Content-Type", "text/html; charset=utf-8"); //设置响应格式
        xhr.onreadystatechange = function() {
          // readyState == 4说明请求已完成
          if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) { 
            //使用正则处理HTML字符串,需要设置全局标识
                //var myRe = /huanzi-qch(\s*)阅读(\s*)[(]+[1-9]\d+[)]/g;
                var myRe = /阅读(\s*)[(]+[1-9]\d+[)]/g;
                var resultArray = xhr.responseText.match(myRe);

                //合并到全局变量数组中
                statisticsArray = statisticsArray.concat(resultArray);

                //判断这个即可:resultArray.length > 0     如果还有文章集合,则返回true
                if(resultArray && resultArray.length > 0){
                    flag = true;
                }
          }
        };
        xhr.send();

        return flag;
    }


    //循环调用getReadData,默认最大页数 100 (100页,每页10条记录,相对于1000篇博客,已经够多了吧?)
    for(var i = 1;i < 100;i++){
        //如果返回false则立即跳出循环
        if(!getReadData(i)){ break;}
    }

    //处理全局数组
    for(var i = 0;i < statisticsArray.length;i++){
        if(statisticsArray[i]){
            //只保留数字部分
            statisticsArray[i] = statisticsArray[i].match(/[1-9]\d+/)[0];
        }else{
            statisticsArray.splice(i, 1);
        }
    }

    //数组求和,需要返回主线程的最终值
    var count = eval(statisticsArray.join("+"));

  	const currentDate = new Date();
		const year = currentDate.getFullYear();
		const month = (currentDate.getMonth() + 1).toString().padStart(2, '0');
		const day = currentDate.getDate().toString().padStart(2, '0');
		const hours = currentDate.getHours().toString().padStart(2, '0');
		const minutes = currentDate.getMinutes().toString().padStart(2, '0');
		const seconds = currentDate.getSeconds().toString().padStart(2, '0');
		const formattedTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  	console.log("统计结束");
		console.log("截止:" + formattedTime + " 总阅读量为:"+count);
}
countBlogReadings('Varuxn');//这里这里,改成自己的用户名就好捏

没想到自己的博客阅读量已经到1.8w了(现在退役快三年了,以后有时间会更一下游记或者心得什么的,大概率是不会再有题解咯)

标签:const,查看,博客园,resultArray,statisticsArray,xhr,阅读,var,currentDate
From: https://www.cnblogs.com/Varuxn/p/18503041

相关文章

  • 10月25日记录(《代码大全》(第二版)阅读笔记)
    精读笔记:《代码大全》(第二版)《代码大全》第二版是软件开发领域的经典之作,涵盖了从编程基础到复杂系统设计的各个方面。本书的核心目标是帮助开发者编写出高质量、易于维护的代码。通过详细阐述编程过程中的各种技术、方法和最佳实践,作者史蒂夫·迈克康奈尔为读者提供了丰富的知识......
  • [转]阅读Go源码的顿悟时刻
    文章转自:https://zhuanlan.zhihu.com/p/2119163293我对各个顿悟时刻简单的总结如下:切片为什么切片操作后总返回一个新切片:因为其内部的数组会在容量满后自动扩容预先分配切片的大小避免扩容是个好办法协程是合作式的(cooperative)go中高效的GMP模型go的编......
  • 十月二十五日总结(阅读笔记)
    我读的是《程序员修炼之道:从小工到专家》。下面是阅读前三章总结的内容。第一章重点讲述了程序员的职业定位和自我提升的必要性。作者指出,作为一名程序员,首先要清楚自己的职业目标和定位。只有了解自己在职业生涯中想成为什么样的人,才能制定出切实可行的发展计划。书中提到,许多程......
  • 论文阅读-Learning to Predict Visual Attributes in the Wild
    摘要视觉属性构成了场景中包含信息的大部分。物体可以使用多种属性来描述,这些属性展现了它们的视觉外观(颜色、纹理)、几何特征(形状、大小、姿态)以及其他内在属性(状态、动作)。现有工作大多局限于特定领域内的属性预测研究。在本文中,我们介绍了一个大规模的野外视觉属性预测数据集,......
  • SQL Server 查看表占用空间大小
    SELECTdb_name()asDbName,t.NAMEASTableName,s.NameASSchemaName,p.rowsASRowCounts,SUM(a.total_pages)*8ASTotalSpaceKB,CAST(ROUND(((SUM(a.total_pages)*8)/1024.00),2)ASNUMERIC(36,2))AS总共占用空间MB,SUM(a.......
  • 企业如何查看员工工作时是否在摸鱼呢?
    在日常的工作中,如何高效监管员工的工作微信已经成为许多企业头疼的问题。今天就给大家分享一个能让企业实时监管员工工作微信的宝藏工具------个微管理系统,帮助企业快速解决监管的烦恼,提升工作效率。1.好友统计好友统计主要统计的是通讯录好友,新增好友和删除好友三种,通过这个......
  • java springboot+maven 对接支付宝生成支付二维码;查看订单;取消订单;退款
    支付宝提供了测试环境支付宝沙箱:先登录开放平台https://openhome.alipay.com/develop/manage这边能拿到调用支付宝接口所需要的所有参数代码部分:首先引入依赖:<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</art......
  • 如何查看字体详细信息,修改字体名称?
    1、下载并安装FontForge软件:https://fontforge.org/en-US/downloads/2、打开软件,选择所需字体,点击OK按钮:3、这个软件看起来是可以做很完整的字体编辑,不过目前只是想查看下字体信息在字体编辑界面中,选择Element菜单,点击FontInfo...菜单项:4、找到TTFNames项目,就可......
  • Windows 11 查看已连接 WiFi 的全流程
    Windows11查看已连接WiFi的全流程以下是通过命令行查看已连接WiFi信息的完整操作流程。1.打开命令提示符(CommandPrompt)按Win+S,在搜索框中输入cmd,点击“命令提示符”以管理员身份运行。2.查看已连接的WiFi网络信息在命令提示符中输入以下命令,按下回......
  • 博客园众包平台
    众包平台是博客园2024年重新开始的商业化进程中正在探索的最重要的商业模式。目前一边在融资,一边在召集早期合作开发者,一边在介绍一些单子给合作开发者。当前已召集2000多位很有经验的合作开发者,其中不少有十年以上的工作经验,其中不少是园子的老用户。如果您有软件开发外包需求......