mitmproxy+appium实现抖音关键字搜索结果自动获取,抖音爬虫


开发环境:ubuntu
相关工具:python、mitmproxy、appium、adb、安卓手机一台
项目逻辑:利用自动化测试工具appium控制手机刷抖音,同时开启mitmdump拦截手机端的所有请求信息,开启mitmproxy事件监听,当监听到需要的请求时,解析response。
下面就讲讲具体如何实现:
1、安装相关工具,网上很多教程,可以自行百度。

2、手机开启代理并安装ca证书
先确保手机跟pc在同一网络,然后打开手机wifi,修改网络

设置好代理之后安装ca证书,打开终端输入命令 cd ~/.mitmproxy 
双击mitmproxy-ca-cert.pem 设为受信用证书,然后使用adb工具把证书发送到手机sd卡,adb push mitmproxy-ca-cert.pem ./sdcard (要在证书目录下执行此命令),手机端找到证书并安装。

3、开启appium服务,编写自动化控制脚本。
打开appium客户端,点start server

然后编写自动化控制脚本

STARTUP_CAPS 需要修改的地方appPackage、appActivity、platformVersion、deviceName,终端输入命令 adb shell dumpsys activity top 可查看appPackage、appActivity,手机>设置>关于本机可以查看platformVersion 系统版本,adb devices 查看deviceName。

4、mitmproxy脚本,开启事件监听

1、下载镜像

docker pull mitmproxy/mitmproxy

2、启动

a、mitmproxy启动b

docker run --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy

b、mitmdump启动

docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump

c、mitmweb启动

docker run --rm -it -p 8080:8080 -p 0.0.0.0:8081:8081 mitmproxy/mitmproxy mitmweb


新建search.py文件,
当手机端触发相应的事件,pc端就会调用对应的方法。
新建addons.py文件

执行命令 mitmdump -s addons.py 开启事件监听。

5、运行我们前面写好的自动化控制脚本,就可以爬取数据了。

可能会遇到的问题:
mitmdump运行时可能会报错
Error starting proxy server: OSError(48, ‘Address already in use’)
端口被占用,lsof -i:8080 查看占有端口的进程,杀死,然后重新运行脚本。
安卓6.0以上的手机设置代理后会出现无法上网的情况,这是证书问题,建议使用安卓4.4。


上一篇:Mitmproxy工具之Command Line教程


下一篇:Mitmproxy代理设置和证书安装