关于微信历史数据采集,步骤如下:
1.安装Nodejs和AnyProxy以及安装模拟器
第一步:nodejs下载地址:http://nodejs.cn/download/ 下载windows版本,直接运行安装即可。
第二步:anyproxy安装,按上一步安装好nodejs之后,直接在cmd运行 npm install -g anyproxy 即可安装。
第三步:anyproxy默认不会解析https,所以需要安装证书,在cmd命令下执行anyproxy --root,如果命令不能执行,则使用 anyproxy root也可以安装证书

第四步:执行anyproxy -i 命令,即可打开服务。

第五步:用浏览器访问http://localhost:8002/,并根据下图指示找到二维码。

第六步:安装安卓模拟器,安卓模拟器可选择夜神安装模拟器,直接百度搜索下载即可。安装好之后,先下载微信app。然后设置模拟器的代理,代理方式改为手动,代理ip为运行anyproxy机器的ip,端口是8001

第七步:根据http://localhost:8002/ 访问得到证书二维码,并截图,如第五步,将截图保存在安卓模拟器上,然后登陆微信扫描二维码,然后点击访问原网页,如下图。

第八步:点击“访问原网页”之后,安装证书,安装提示操作即可。

第九步:当出现下图“已安装XXX”提示时,则安装成功,安全警告可忽略。

  1. 如何使用Anyproxy采集微信数据

第一步:打开anyproxy中的一个叫rule_default.js的js文件,windows下该文件在:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
第二步:找到beforeSendResponse(requestDetail, responseDetail)的方法,该方法是在你操作微信app或者其他软件时候,访问到的网络数据都会从这里拦截下来,也就是我们抓取到的数据。其中requestDetail参数,包括如下图的属性值,可以根据console.log()展现。其中requestDetail.response.header包括了我们爬取微信需要的参数,以及requestDetail.response.body返回的是数据值

第三步:拦截我们需要的方法以及将参数传入到我们自己的程序中。其中HttpPost的方法是自定义的


第四步:当微信程序执行时,将对应的参数信息传入到我们自己的程序,然后将对应的参数推送到redis中去。采集微信数据列表需要的参数cookie,pass_ticket,x-wechat-key,x-wechat-uin。采集微信文章阅读点赞数的参数appmsg_token,pass_ticket,cookie

第五步:爬取微信文章的数据接口如下,主页地址
https://mp.weixin.qq.com/mp/profile_ext?action=home"&__biz=MzAwODMyMDIyMg==&scene=124&devicetype=android-19&version=26051731&lang=zh_CN&nettype=WIFI&a8scene=3&pass_ticket=参数&wx_header=1 代码如下:
String wechartCookie01 = jedis.srandmember(“wechartCookie01”);
JSONObject o = (JSONObject) JSONObject.parse(wechartCookie01);
WechartCookie wechartCookie = JSONObject.toJavaObject(o, WechartCookie.class);
CloseableHttpClient https = HttpClients.createDefault();
String url = “https://mp.weixin.qq.com/mp/profile_ext?action=home”
+ “&__biz=MzAwODMyMDIyMg==”
+ “&scene=124&devicetype=android-19”
+ “&version=26051731&lang=zh_CN&nettype=WIFI&a8scene=3&pass_ticket=”
+ wechartCookie.getPass_ticket() + “&wx_header=1”;
HttpGet httpPost = new HttpGet(url);
httpPost.addHeader(“Host”, “mp.weixin.qq.com”);
httpPost.addHeader(“x-wechat-uin”, wechartCookie.getUin());
httpPost.addHeader(“x-wechat-key”, wechartCookie.getKey());
httpPost.addHeader(“User-Agent”,
“Mozilla/5.0 (Linux; Android 4.4.2; M688C Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 MicroMessenger/6.5.23.1180 NetType/WIFI Language/zh_CN”);
httpPost.addHeader(“Accept”, “text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”);
httpPost.addHeader(“Cookie”, wechartCookie.getCookie());
httpPost.addHeader(“X-Requested-With”, “com.tencent.mm”);
HttpResponse response = https.execute(httpPost);
HttpEntity entitySort = response.getEntity();
String html = EntityUtils.toString(entitySort, “utf-8”);
if (html.split(“msgList”) != null && html.split(“msgList”).length > 1) {
String msglist = html.split(“msgList”)[1];
msglist = msglist.split("\n")[0];
msglist = msglist.substring(4, msglist.length() - 2);
msglist = msglist.replace(""", “”");
msglist = msglist.replace(“amp;”, “”);
JSONObject obj = JSONObject.parseObject(msglist);
String list = obj.getString(“list”);
JSONArray vlist = JSONArray.parseArray(list);
for (Object object : vlist) {
Wechart w1 = new Wechart();
obj = JSONObject.parseObject(object.toString());
JSONObject info = JSONObject.parseObject(obj.getString(“app_msg_ext_info”));
String title = info.getString(“title”);
String content_url = info.getString(“content_url”);
JSONObject info1 = JSONObject.parseObject(obj.getString(“comm_msg_info”));
String date = info1.getString(“datetime”) + “000”;
Date dates = new Date(Long.parseLong(date));
w1.setTitle(title);
w1.setUrl(content_url);
w1.setPubTime(dates);
wclist.add(w1);
// 头条新闻解析
JSONArray topArray = JSONArray.parseArray(info.getString(“multi_app_msg_item_list”));
for (Object object2 : topArray) {
Wechart w2 = new Wechart();
JSONObject topObj = (JSONObject) object2;
String topTitie = topObj.getString(“title”);
topTitie = topTitie.replace(""", “”");
String topUrl = topObj.getString(“content_url”);
w2.setTitle(topTitie);
w2.setUrl(topUrl);
w2.setPubTime(dates);
wclist.add(w2);
}
}
}

3.按键精灵的安装与使用
第一步:直接在百度上搜索安装“按键精灵”,下载即可,然后注册一个账号。
第二步:写好指定按键精灵使用脚本,先将我们要操作的标签通过按键精灵截图

第三步:代码操作介绍,如图

下图方法可能出现需要通过验证Attachment:\2.png的过程,需要调用此方法。

下图是判断是否有返回图片存在,有则单击跳转

微信公众号历史文章采集相关推荐

  1. 微信文章如何采集php,记录微信公众号历史文章采集(二、js代码完善和数据库建立)...

    参考自知乎专题微信公众号内容的批量采集与应用,作者:飯口組組長 原作者(飯口組組長)有一句话:我的方法来源于许多同行的分享精神,所以我也会延续这个精神,将我的成果分享出来. 这系列的文章也是为了延续这 ...

  2. 订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...

    原标题:一步步教你怎么打造微信公众号历史文章爬虫 开篇语: 邓爷爷曾说过:不管黑猫白猫,逮到耗子就是好猫.不管我是凑的还是笨办法堆出来的,确实把批量导出微信公众号所有历史文章的这个功能给做出来了,而且 ...

  3. 【Python爬虫】微信公众号历史文章和文章评论API分析

    上一篇文章爬取微信公众号文章信息准备工作介绍了微信公众号历史文章和文章评论API的组成情况,历史文章API格式:https://mp.weixin.qq.com/mp/profile_ext?acti ...

  4. 获取微信公众号历史文章列表页链接

    通用公式:https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=这里替换你的biz== Tips:红字内容为下面找到的biz值,切 ...

  5. 如何抓取微信公众号历史文章?使用订阅号实现微信公众号历史文章爬虫

        微信订阅号已经改版了,这篇文章已经过时了,不过可以提供还算有价值的参考.     微信公众号已经成为生活的一部分了,虽然里面有很多作者只是为了蹭热点,撩读者的 G 点,自己从中获得一些收益:但 ...

  6. 微信公众号历史文章抓取

    微信公众号历史文章抓取 目录结构 WechatSpider │ README.md │ chromedriver.exe │ main.py │ gzhspider.py │ requirements ...

  7. python下载微信公众号文章_python selenium 微信公众号历史文章随手一点就返回首页?郁闷之下只好将他们都下载下来。...

    需求: 想阅读微信公众号历史文章,但是每次找回看得地方不方便. 思路: 1.使用selenium打开微信公众号历史文章,并滚动刷新到最底部,获取到所有历史文章urls. 2.对urls进行遍历访问,并 ...

  8. python爬取公众号历史文章_pythons爬虫:抓取微信公众号 历史文章(selenium+phantomjs)...

    原标题:pythons爬虫:抓取微信公众号 历史文章(selenium+phantomjs) 大数据挖掘DT数据分析 公众号: datadw 本文爬虫代码可以通过回复本公众号关键字"公众号& ...

  9. 订阅号微信公众号历史文章爬虫php,2019.9月最新爬取微信公众号历史文章的办法...

    版权申明 原创文章:本博所有原创文章,欢迎转载,转载请注明出处,并联系本人取得授权. 版权邮箱地址:banquan@mrdwy.com 简介 我反复试了网上各种方法,都可能已经过时,或者无法使用,我这 ...

  10. Python爬取微信公众号历史文章进行数据分析,发现2017年运营总结,可以这样写!...

    作者:刘晓明,互联网公司运维技术负责人,拥有10年的互联网开发和运维经验.一直致力于运维工具的开发和运维专家服务的推进,赋能开发,提高效能. 广告时间:最后给自己代个盐~~欢迎大家有空时翻下我牌子(知 ...

最新文章

  1. 判断一个string是否可以为数字
  2. java的rsa作用_java 中RSA的方式实现非对称加密的实例
  3. MySQL安装步骤及相关问题解决
  4. 数据结构与算法 / 排序算法(1)
  5. 火炬之光2找不到服务器,火炬之光2无法运行解决办法详细介绍
  6. deep learning入门学习
  7. php清理html table样式,Parse HTML Table - PHP [closed]
  8. 猫头鹰的深夜翻译:Java中的CAS(Compare And Swap)
  9. 微软旗下Maluuba推出看图问答数据集,想让AI看懂图表
  10. php传引用和全局变量
  11. hdfs java操作_hdfs java操作
  12. 毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统
  13. 【财经期刊FM-Radio|2020年11月16日】
  14. RL78平台开发注意点
  15. java 拉勾网,拉钩网java笔试题分享
  16. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读
  17. 虎牙在全球 DNS 秒级生效上的实践
  18. java中产生随机数
  19. CentOS 6.5 本地yum源配置
  20. AIGC火了,但它能替代红人们吗?

热门文章

  1. 生鲜电商纷纷传上市,但赛道并不性感
  2. 重庆计算机二级成绩查询2020年12月,重庆2020年12月计算机等级考试成绩查询入口已开通...
  3. 01百思不得其姐基本配置
  4. 显示断开连接ntp服务器,ntp服务器连接异常咋办
  5. 安排座位 java_如何安排领导座次
  6. MySQL从创建数据库到删库跑路之旅
  7. java default locale_Java Locale setDefault()用法及代码示例
  8. 快速排序算法的发明者霍尔
  9. 回文串----蘑菇街2016校园招聘
  10. 教你 用c语言输出乘法口诀表 一giao我嘞gaiogiao