背景: 现在移动短视频大火,很多的内容消费都在手机的客户端上进行。为了监控类似抖音短视频平台上的风险数据(主要是视频标题、视频内容、评论区),采用爬虫技术手段来实时爬取内容。
技术方案: python(脚本程序) mitmproxy(代理服务器) appium(自动化工具)
原理: 采用抓包的方式,通过设置代理服务器、以及设置https证书,让所有的http、https的请求和响应全部通过这个代理服务器来转发,然后利用脚本对转发的数据进行处理。
和fiddler、Charles等抓包工具对比,mitmproxy最大的优势是它提供了python脚本的对接入口,可以利用python来处理爬取到的数据。例如:下载视频文件,存储关键信息到我们自己的DB上等。
实现爬取抖音视频及标题数据
第一步:安装环境及工具
安装python环境
安装mitmproxy代理工具
安装appium自动化工具(目前没用到) 略
第二步:设置代理相关 (为支持https请求需安装证书)
1.安装完mitmproxy后,会在如下目录生成证书文件。 2.安装mitmproxy的pc证书 双击mitmproxy-ca.p12证书进行安装,弹出如下窗口: 点击下一步,如下: 点击下一步,如下: 点击下一步,如下:(注意这里密码默认为空) 点击下一步,如下。再点击完成即可。
3.安装mitmproxy的手机客户端证书
把上图中mitmproxy-ca-cert.pem文件导入手机随便一个位置,接着找到手机的设置入口,根据各自手机的情况,反正就是找到并安装上这个证书即可。(这里不细述,苹果手机需信任之类的操作)
4.设置手机代理,把手机请求指向本地电脑的mitmproxy代理。 cmd-->ipconfig-->IPv4地址 设置手机
第三步:启动代理,爬取数据
编写python爬取抖音内容脚本douyin.py,存放在site-packages目录下:
以加载python的方式启动mitmproxy代理: (需先cd到site-packages目录,然后执行如下命令)
需要注意: 1)douyin.py存放在python的安裝目录下,不然会报requests模块找不到。 第四步:手工滑动抖音,实时查看抖音视频数据。 (后面可借助appium自动化工具模拟滑动动作)
根据抓包,分析抖音数据结构: mitmdump上实时打印的抓包数据: 实时下载的抖音视频:
展望及不足: 1)python脚本比较简陋,现在还不支持数据过滤及入库。 2)只是简单的技术验证,如上面提到的,抖音的视频地址可能会变,到时就需要维护成本。 3)如需落地监控,需训练视频内容、邮件通知、视频查阅(可通过定时上传百度云实现视频播放)等。
相关参考资料: mitmproxy 使用指南:
使用 mitmproxy python 做拦截代理:(详尽) blog.wolfogre.com/posts/usage…
python下载安装:(3.6以上)
安装mitmproxy以及遇到的坑和简单用法:
mitmproxy的安装教程
mitmproxy下载界面: mitmproxy下载界面:(推荐)
使用python爬取抖音app视频:
靠谱的Pycharm安装详细教程:
appium下载界面:
Charles的安装及使用过程:(代理服务器)
Charles和mitmproxy代理设置
mitmproxy的下载及证书配置(简书)
Pycharm No module named requests 的解决方法:
linux下载抖音模块:
win10 python爬取数据:(推荐)
破解版Charles的安装: 来源:https://www./content-4-459451.html |
|