【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/106180223
1. 先使用mitmproxy代理抓微信公众号历史文章列表
实现思路:
在电脑上安装 mitmproxy代理,手机和电脑连同一wifi,手机配置当前电脑为代理服务器,然后手动查看公众号历史文章列表,这样电脑上就可以获得列表,然后再根据列表中的详情url拿到公众号文章详情。
1.1 安装mitmproxy
需要先安装Python 3.6 (或更高版本)和 pip3.6 ,之后执行以下命令安装
sudo pip3.6 install -U pip
sudo pip3.6 install mitmproxy
1.2 准备代理脚本wechat_proxy.py
更多的例子可以参考官网simple
# -*- coding: utf-8 -*-
# @Time : 2019/7/11
# @Author : zl
from mitmproxy import http
from mitmproxy import ctx
from urllib import parse
import json
def response(flow: http.HTTPFlow):
try:
info = ctx.log.info
req = flow.request
resp = flow.response
url = req.url
purl = parse.urlparse(url)
param_dict = parse.parse_qs(purl.query)
host = purl.hostname
path = purl.path
if host == 'mp.weixin.qq.com' and path == '/mp/profile_ext':
action = param_dict['action'][0]
if action in ['home', 'getmsg']:
msg = {}
msg['url'] = url
msg['action'] = action
msg['req_header'] = dict(req.headers)
msg['resp_header'] = dict(resp.headers)
if action == 'getmsg':
msg['resp_body'] = json.loads(resp.content)
info('msg : %s----' % msg)
except Exception as e:
ctx.log.error('wechatproxy error, %s' % e)
执行下面的脚本启动:
mitmdump -p 8888 -s ${script_home}/wechat_proxy.py
手机浏览器访问http://mitm.it/安装证书并启用,然后配置手机代理,翻阅公众号文章列表既可以看到消息日志,文章详情的抓取这里不再介绍
mitmproxy其他的用法可以参考官方文档
2. 使用appium实现自动化
2.1 前提
2.1.1 安装JDK 并设置环境变量
1. 到Java官网下载相应的JDK并安装
2. 设置环境变量
- 添加JAVA_HOME
- 在PATH变量末尾追加 ;%JAVA_HOME%/bin;
- 添加CLASSPATH,设置值为%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
2.1.2 安装Android SDK 并设置环境变量
注意:安装Android SDK需要翻墙并更新你的SDK repository
1. 到[Android 官网](http://developer.android.com/sdk/index.html#Other)下载并安装SDK
2. 设置环境变量
- 添加`ANDROID_HOME`
- 在`path`环境变量值末尾追加:`;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;`
2.1.3 安装Nodejs
#先安装一个node版本管理软件
brew install n
#或者
curl -L https://git.io/n-install | bash
#安装node8.6
sudo n 8.6.0
#后面安装的时候有可能没权限
sudo chown -R $(whoami):admin /usr/local/**
注:不要安装太高版本,否则后面安装某些依赖会不兼容。
2.2 安装appium
安装appium有两种方式:
- 使用 npm (Node js 的管理与分发工具) 安装Appium
- 使用Appium官方安装包安装
下面只介绍npm安装方式,如果要装desktop,直接去官网下载最新版安装即可。
将npm的下载地址更改为淘宝的NPM镜像源
npm config set registry=https://registry.npm.taobao.org
npm config get registry
确认镜像源替换成功之后执行下面命令安装Appium
npm install -g appium
2.3 安装其他依赖
2.3.1 安装opencv4nodejs
如果已经安装openCV,则需要在安装opencv4nodejs之前设置
export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
export OPENCV_INCLUDE_DIR=/usr/local/include/opencv4
export OPENCV_LIB_DIR=/usr/local/lib
export OPENCV_BIN_DIR=/usr/local/bin
npm安装
npm install -g opencv4nodejs
2.3.2 安装idevicelocation
brew install libzip libplist openssl libimobiledevice
git clone https://github.com/JonGabilondoAngulo/idevicelocation.git
cd idevicelocation
make
sudo make install
-
遇到问题
checking for libimobiledevice-1.0 >= 1.2.1... no configure: error: Package requirements (libimobiledevice-1.0 >= 1.2.1) were not met: Package 'openssl', required by 'libimobiledevice-1.0', not found
解决方法
ln -s /usr/local/Cellar/openssl/${YOUR_OPENSSL_VERSION}/lib/pkgconfig/* /usr/local/lib/pkgconfig/
2.3.3 安装idb 及 idb_companion
brew tap facebook/fb
brew install idb-companion
brew tap cartr/qt4
brew tap-pin cartr/qt4
brew install cartr/qt4/qt@4
pip3.6 install fb-idb
brew install cmake usbmuxd libimobiledevice
执行
$ idb list-targets
...
iPhone X | 569C0F94-5D53-40D2-AF8F-F4AA5BAA7D5E | Shutdown | simulator | iOS 12.2 | x86_64 | No Companion Connected
iPhone Xs | 2A1