使用油猴JS脚本进行微信公众号数据采集
油猴JS脚本是一种用于采集微信公众号数据的脚本。它可以帮助用户轻松地获取公众号的文章、阅读量、点赞数等数据,方便进行数据分析和研究。使用油猴JS脚本,用户只需在浏览器中安装相应的插件,然后访问微信公众号页面,即可自动执行数据采集任务。此外,油猴JS脚本还支持自定义规则,可以根据用户的需求定制数据采集范围和内容。总之,油猴JS脚本是一款实用的工具,能够帮助用户快速高效地获取微信公众号数据,为数据分析和研究提供便利。
因为公司平时需要运营记录微信公众号推文的阅读数、点赞数、评论数,所以经常会浪费大把时间去统计,所以为了帮助她人,就利用工作闲暇之余制作了这一款油猴脚本,可以抓取微信公众号平台推文的文章数据,并制作成execl报表并下载。
采集微信公众号教程
参考网上的教程再加上自己平时学的一些js,才把数据拿到手,如果你也想制作属于自己的油猴脚本,可以参考《简单的油猴脚本编写教程》
此次制作无非就是使用jquery的选择器拿到html内容,原理相对简单,但是打包成报表的时候搞了很久,但是幸好在百度找到一篇《HTML table导出到Excel中的解决办法》才完成了最后的报表导出功能。
//==UserScript==//@iconhttps://res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png//@name微信公众号数据采集//@namespace[url=https://www.youngxj.cn]杨小杰博客[/url]//@authorYoungxj//@description获取微信公众号文章发布的文章标题、阅读数、点赞数、评论数,并下载成表格//@match*://mp.weixin.qq.com/cgi-bin/home*//@requirehttps://cdn.bootcss.com/jquery/1.8.3/jquery.min.js//@version0.0.3//@grantGM_addStyle//==/UserScript==(function(){'usestrict';//脚本制作参考教程:https://blog.csdn.net/weixin_30635053/article/details/95395672//与元数据块中的@grant值相对应,功能是生成一个style样式GM_addStyle('#down_wixin_btn{color:#fa7d3c;}');//视频下载按钮的html代码vardown_btn_html='<divclass="weui-desktop-online-faq__switch_content"id="down_wixin_btn"><divclass="text">获取数据</div></div>';//将以上拼接的html代码插入到网页里的ul标签中varul_tag=$(".weui-desktop-online-faq__switch_content");if(ul_tag){ul_tag.append(down_btn_html);}//插入div块vartextar='<divclass="weixin_data_textarea"style="display:none;"></div>';$('body').append(textar);vartimer;varWxTool={//把页面的表格转化为excel下载下来//参考链接:https://www.cnblogs.com/anniey/p/7738278.htmlgetExplorer:function(){//获取浏览器varexplorer=window.navigator.userAgent;if(explorer.indexOf("MSIE")>=0||(explorer.indexOf("WindowsNT6.1;")>=0&&explorer.indexOf("Trident/7.0;")>=0)){return'ie';}elseif(explorer.indexOf("Firefox")>=0){return'Firefox';}elseif(explorer.indexOf("Chrome")>=0){return'Chrome';}elseif(explorer.indexOf("Opera")>=0){return'Opera';}elseif(explorer.indexOf("Safari")>=0){return'Safari';}},excels:function(table){if(WxTool.getExplorer()=='ie'){varcurTbl=document.getElementById(table);varoXl=newActiveXObject("Excel.Application");//创建AX对象excelvaroWB=oXL.Workbooks.Add();//获取workbook对象varxlsheet=oWB.Worksheets(1);//激活当前sheetvarsel=document.body.createTextRange();sel.moveToElementText(curTbl);//把表格中的内容移到TextRange中sel.select;//全选TextRange中内容sel.execCommand("Copy");//复制TextRange中内容xlsheet.Paste();//粘贴到活动的EXCEL中oXL.Visible=true;//设置excel可见属性try{varfilename=oXL.Application.GetSaveAsFilename("Excel.xls","ExcelSpreadsheets(*.xls),*.xls");}catch(e){window.print("Nestedcatchcaught"+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){returnwindow.btoa(unescape(encodeURIComponent(s)))},format:function(s,c){returns.replace(/{(w+)}/g,function(m,p){returnc[p];})},tableToExcel:function(){returnWxTool.zzzz("weixin_data_table",'微信公众号数据采集');},zzzz:function(table,name){varuri='data:application/vnd.ms-excel;base64,',template='<htmlxmlns:o="urn:schemas-microsoft-com:office:office"xmlns:x="urn:schemas-microsoft-com:office:excel"xmlns="http://www.w3.org/TR/REC-html40"><head><!--[ifgtemso9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>';if(!table.nodeType)table=document.getElementById(table);varctx={worksheet:name||'Worksheet',table:table.innerHTML};window.location.href=uri+WxTool.base64(WxTool.format(template,ctx))}};$(function(){//执行下载按钮的单击事件并调用下载函数$("#down_wixin_btn").click(function(){//微信公众号目前的数据节点是这样的,微信公众号平台更新可能会导致节点改变,稍微改变即可vartitle=$('.weui-desktop-mass__item.weui-desktop-mass-appmsg.weui-desktop-mass-appmsg__titlespan');varyuedu=$('.weui-desktop-mass__item.appmsg-viewspan');vardianzan=$('.weui-desktop-mass__item.appmsg-haokanspan');varpinglun=$('.weui-desktop-mass__item.js_comment_info.weui-desktop-link');vararrTime=newArray();vararrTitle=newArray();vararrYuedu=newArray();vararrDianzan=newArray();vararrPinglun=newArray();$.each(title,function(index,val){vartimes=$(val).parent().parent().parent().parent().parent().prev();vartimess=$(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());});//组装数据varnewHtml='';$.each(arrTitle,function(index,val){newHtml+='<tr><td>'+arrTime[index]+'</td><td>'+arrTitle[index]+'</td><td>'+arrYuedu[index]+'</td><td>'+arrDianzan[index]+'</td><td>'+arrPinglun[index]+'</td></tr>';});//拼接tablevartextDataStart='<tableclass="weixin_data_table"id="weixin_data_table"><thead><tr><thclass="time">时间</th><thclass="title">标题</th><thclass="read_num">阅读数</th><thclass="dianzan_num">点赞数</th><thclass="pinglun_num">评论数</th></tr></thead><tbody>';vartextData=$('#weixin_data').val();vartextDateEnd='</tbody></table>';$('.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
相关专题