卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

油猴JS脚本-采集微信公众号数据

因为公司平时需要运营记录微信公众号推文的阅读数、点赞数、评论数,所以经常可以浪费大把时间去统计数据,所以为了协助她人,就利用工作闲暇之余制作了这一款油猴脚本,可以抓取微信公众号平台推文的文章数据,并制作成execl报表并下载。

油猴JS脚本-收集微信公众号数据

收集微信公众号教程

参照网上的教程再加之自己平时研习的一些js,才把数据拿到手,如果你也想制作属于自己的油猴脚本,可以参照《直观的油猴脚本编写教程》

此次制作无非就是采用jquery的选择器领到html内容,原理相对简单,但是装箱成报表的时候搞了很久,但是幸亏在百度找到一篇《HTML table导出到Excel中的解决办法》才完成了最后的报表导出功能。

// ==UserScript==
// @icon            https://res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png
// @name            微信公众号数据采集
// @namespace       [url=https://www.youngxj.cn]杨小杰博客[/url]
// @author          Youngxj
// @description     获取微信公众号文章发布的文章标题、阅读数、点赞数、评论数,并下载成表格
// @match           *://mp.weixin.qq.com/cgi-bin/home*
// @require         https://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// @version         0.0.3
// @grant           GM_addStyle
// ==/UserScript==
(function() {
    'use strict';
    // 脚本制作参考教程:https://blog.csdn.net/weixin_30635053/article/details/95395672
    //与元数据块中的@grant值相对应,功能就是生成一个style样式
    GM_addStyle('#down_wixin_btn{color:#fa7d3c;}');
    //视频下载按钮的html代码
    var down_btn_html = ' 获取数据
  
';     //将以上拼接的html代码插入至网页里的ul标签中     var ul_tag = $(".weui-desktop-online-faq__switch_content");     if (ul_tag) {         ul_tag.append(down_btn_html);     }     // 填入div块     var textar = '
';     $('body').append(textar);     var timer;     var WxTool = {         // 把页面的表格转化为excel下载下来         // 参照链接:https://www.cnblogs.com/anniey/p/7738278.html         getExplorer: function() {             //获取浏览器             var explorer = window.navigator.userAgent;             if (explorer.indexOf("MSIE") >= 0 || (explorer.indexOf("Windows NT 6.1;") >= 0 && explorer.indexOf("Trident/7.0;") >= 0)) {                 return 'ie';             } else if (explorer.indexOf("Firefox") >= 0) {                 return 'Firefox';             } else if (explorer.indexOf("Chrome") >= 0) {                 return 'Chrome';             } else if (explorer.indexOf("Opera") >= 0) {                 return 'Opera';             } else if (explorer.indexOf("Safari") >= 0) {                 return 'Safari';             }         },         excels: function(table) {             if (WxTool.getExplorer() == 'ie') {                 var curTbl = document.getElementById(table);                 var oXl = new ActiveXObject("Excel.Application"); //建立AX对象excel                  var oWB = oXL.Workbooks.Add(); //获取workbook对象                 var xlsheet = oWB.Worksheets(1); //激活当前sheet                 var sel = document.body.createTextRange();                 sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中                  sel.select; //全选TextRange中内容                 sel.execCommand("Copy"); //复制TextRange中内容                 xlsheet.Paste(); //粘贴到活动的EXCEL中                 oXL.Visible = true; //设置excel可知属性                 try {                     var filename = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");                 } catch (e) {                     window.print("Nested catch caught " + e);                 } finally {                     oWB.SaveAs(filename);                     oWB.Close(savechanges = false);                     oXL.Quit();                     oXL = null; //结束excel进程,选择退出顺利完成                     timer = window.setInterval("WxTool.Cleanup();", 1);                 }             } else {                 WxTool.tableToExcel("weixin_data_table");             }         },         Cleanup: function() {             window.clearInterval(timer);             CollectGarbage(); //CollectGarbage,就是IE的一个特有属性,用作释放出来内存的         },         base64: function(s) {             return window.btoa(unescape(encodeURIComponent(s)))         },         format: function(s, c) {             return s.replace(/{(w+)}/g, function(m, p) {                 return c[p];             })         },         tableToExcel: function() {             return WxTool.zzzz("weixin_data_table", '微信公众号数据采集');         },         zzzz: function(table, name) {             var uri = 'data:application/vnd.ms-excel;base64,',                 template = '{table}
';             if (!table.nodeType) table = document.getElementById(table);             var ctx = {                 worksheet: name || 'Worksheet',                 table: table.innerHTML             };             window.location.href = uri + WxTool.base64(WxTool.format(template, ctx))         }     };     $(function() {         //执行下载按钮的单击事件并调用下载函数         $("#down_wixin_btn").click(function() {          // 微信公众号目前的数据节点就是这样的,微信公众号平台更新可能会引致节点改变,稍微改变即可          var title = $('.weui-desktop-mass__item .weui-desktop-mass-appmsg .weui-desktop-mass-appmsg__title span');         var yuedu = $('.weui-desktop-mass__item .appmsg-view span');         var dianzan = $('.weui-desktop-mass__item .appmsg-haokan span');         var pinglun = $('.weui-desktop-mass__item .js_comment_info .weui-desktop-link');             var arrTime = new Array();             var arrTitle = new Array();             var arrYuedu = new Array();             var arrDianzan = new Array();             var arrPinglun = new Array();             $.each(title, function(index, val) {                 var times = $(val).parent().parent().parent().parent().parent().prev();                 var timess = $(times).children('em').html();                 arrTime.push(timess);                 arrTitle.push($(val).html());             });             $.each(yuedu, function(index, val) {                 arrYuedu.push($(val).html());             });             $.each(dianzan, function(index, val) {                 arrDianzan.push($(val).html());             });             $.each(pinglun, function(index, val) {                 arrPinglun.push($(val).html());             });             // 装配数据             var newHtml = '';             $.each(arrTitle, function(index, val) {                 newHtml += '' + arrTime[index] + '' + arrTitle[index] + '' + arrYuedu[index] + '' + arrDianzan[index] + '' + arrPinglun[index] + '';             });             // 拼接table             var textDataStart = '                                                   时间                      标题                      阅读数                      点赞数                      评论数                                              ';             var textData = $('#weixin_data').val();             var textDateEnd = '';             $('.weixin_data_textarea').html(textDataStart + textData + newHtml + textDateEnd);             WxTool.excels('weixin_data_table');         });     }); })();

完备油猴插件安装地址:https://greasyfork.org/zh-CN/scripts/395157-%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86

有关专题

卓越飞翔博客
上一篇: 京东盲盒自动做任务JS脚本
下一篇: JS查看浏览器中的*号密码内容
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏