admin 管理员组文章数量: 887019
微信公众号抓取所需环境(基于windows 系统 和 安卓手机)
- 手机 2.Java 环境 3,安卓环境 4.appium 5.anyprxy 6.python环境7.nodejs
PC环境搭建: - Java 环境
- 安卓环境:电脑中安装对应手机的安卓环境(安卓环境是基于 java 环境)
- Nodejs: https://nodejs/en/
- Appium: http://appium.io/
- Anyproxy 基于nodejs 安装完成nodejs后,在命令窗口直接执行 npm install anyproxy -g 指令即可安装anyproxy
安装完成 anyproxy 后 在命令窗口直接执行 anyproxy -i即可启动
手机准备:- 解除 root 和系统刷机(使用开发版)
- 微信 app安装
- 打开开发者选项
- 打开手机 usb调试和usb安装选项
其他准备:
1. 微信号
2. 需要抓取的微信公众号,( 对应biz)
详细描述:
java 环境搭建
-
首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle/technetwork/java/javase/downloads/index.html
-
安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为
-
配置java 环境变量
• 变量名:JAVA_HOME • 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置 • 变量名:CLASSPATH • 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"." • 变量名:Path • 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
-
在 指令窗口 运行 java -version,出现安装对应 的版本信息才算安装成功,否则需重新安装对应的java 环境,
-
安卓环境搭建
- 可下载 Android Studio ,地址:https://developer.android.google/studio?hl=zh-cn 下载安装完成后,在设置中可以直接下载对应的安卓手机环境
-
安卓环境变量配置
例如Android sdk的路径为 E:\Sdk
则,环境变量中新建,
变量名为: ANDROID_HOME
变量值为: E:\Sdk
同样的编辑Path环境变量,在末尾添上
%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools
注意 “;” 的使用
ps:对于win10系统,path环境变量是一条一条的,所以添加在path上的需要分割成两条。
pps:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
同样在终端验证,输入adb,看是否有正常输出
-
NodeJS
https://nodejs/en/
目前最新的版本为14.12.可自行选择需要的版本
下载完成后进行默认安装即可,安装完成在命令窗口执行
node -v 和 npm -v 两个指令,输出版本号及整明 node 和 npm 安装完成 -
Appium
https://github/appium/appium-desktop/releases/tag/v1.18.0-2(当前最新版本)
安装完成后打开
1.点击 start 进入下一级页面(默认设置即可,如有需要进入高级设置选项自行选择)
2.级页面点击如图所示,进入下级菜单
3. 设置对应参数启动会话(启动会话前提,用数据线链接手机,手机打开开发者选项,通过录制可以将操作转换为 对应的 python 代码)
app启动参数
desired_caps = {
"platformName": "Android",
"deviceName": "3cc56469",
"appPackage": "com.tencent.mm",
"appActivity": ".ui.LauncherUI",
"automationName": "Uiautomator2",
# "dontStopAppOnReset" : "True", #不重启 app
"unicodeKeyboard": "True", # 使用unicodeKeyboard的编码方式来发送字符串 ,可以实现输入中文
"resetKeyboard": "True", # 隐藏虚拟键盘,防止遮挡元素
"newCommandTimeout": "86400", # 设置命令超时时间(程序默认启动时间为60秒,60秒无操作程序自动关闭),单位:秒
"noReset": "True",
"chromeOptions": {
"androidProcess": "com.tencent.mm:tools"
}
}
- Anyproxy(基于 nodejs )
- Node js安装完成后 可执行 npm install anyproxy -g,安装完成后,运行指令 anyproxy -i
2.运行成功后访问 http://127.0.0.1:8002/ 进行证书下载(电脑,手机都需要安装),手机需访问 电脑的ip进行下载
(没有CA证书无法抓包)
- 安装完成后进入
C:\Users\电脑用户\AppData\Roaming\npm\node_modules\anyproxy\lib路径下, rule_default.js 修改beforeSendResponse 方法
let list = 200
beforeSendResponse(requestDetail, responseDetail) {
sleep(1000);
Promise.resolve().then(function () {
if (/mp\/profile_ext\?action=home/i.test(requestDetail.url)) {
let listNum = list.length;
console.log("======="+requestDetail.url);
if(loopNum<listNum) {
loopNum++;
extracted1(wechat_url, responseDetail);
postData(data);
} else {
return null;
}
}
return null;
});
return null;
},
- 重启 anyproxy
- 进行数据抓取
https://mp.weixin.qq/mp/profile_ext?action=home&__biz=MzU1NDY1NDU5Ng==&secene=123#wechat_redirect (需要变更的数据为biz=后面的参数)
微信数据推送在 msgList 下
根据需求自行解析
anyproxy 需添加的代码:
function extracted1(url,responseDetail) {
console.info(url)
console.info("================================")
data = responseDetail.response.body = Buffer.from("<script>setTimeout(function(){window.location.href='" + url +"';},1000);</script>" + responseDetail.response.body);
data = responseDetail.response.body.toString('utf8');
data = data.replace(/"/g, '"');
data = data.replace(/&/g, '&');
data = data.replace(/</g, '<');
data = data.replace(/>/g, '>');
data = data.replace(/ /g, ' ');
// console.log("当前数据:" +data)
}
/**
* 发送数据结果(后端接收参数)
* @param data
*/
function postData(data) {
let http = require('http');
let qs = require('querystring');
let post_data = {
data: data
};
let content = qs.stringify(post_data);
let options = {
hostname: '127.0.0.1',
port: 5000,
path: '/',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
};
let req = http.request(options, function (res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
// console.log('BODY: ' + chunk);
});
});
req.on('error', function (e) {
});
// 将数据写入请求体
req.write(content);//注意这个地方
req.end();
}
下篇文章将介绍 使用 python程序进行手机账号切换的操作
转载请标明出处,感谢
版权声明:本文标题:微信公众号抓取 所需环境及部分业务代码(基于windows 系统 和 安卓手机)① 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727165023h1076388.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论