今天,我们就来学习如何使用Python爬取抖音APP数据。使用Python爬取抖音APP数据需要的工具有:编程工具:pycharmapp抓包工具:mitmproxyapp自动化工具:appium运行环境:windows10思路:假设我们需要的工具已经配置好了1.使用mitmproxy抓包手机app获取我们想要的内容2.使用appium自动化测试工具驱动app模拟人的动作(滑动,点击等)3.结合1和2实现自动爬虫的效果。mitmproxy/mitmdump抓包确保mitmproxy已经安装,手机和PC在同一个局域网内,mitmproxy的CA证书也已经配置好。网上有很多相关的配置教程,这里略过。由于mitmproxy不支持windows系统,这里使用了它的组件之一mitmdump。它是mitmproxy的命令行界面。可以用来连接我们的Python脚本,使用Python实现监控后处理。配置mitmproxy后,在控制台输入mitmdump,打开手机端的抖音app,mitmdump会显示手机端所有的请求,如下图:查看mitmdump显示的请求,你会发现前缀是:这三类前缀的url正是我们的目标抖音视频url。下一步是编写一个python脚本来下载视频。您需要使用mitmdump-sscripts.py(这里是python文件名)来执行脚本。代码比较粗糙,但是基本逻辑还是比较清晰的,这样我们就可以下载抖音的视频了,但是这个方法有一个缺陷,就是要获取视频,需要人不断的滑动下一个抖音视频的,这时候我们可以使用强大的appium自动化测试工具来解决。Appium模拟手机,保证appium依赖的环境Android和SDK已经配置好。网上也有很多教程,这里就不说了。appium的使用非常简单。首先,我们打开appium。启动界面如下:点击StartServer按钮启动appium服务。安卓手机通过数据线连接PC,同时打开USE调试功能,可以输入adb命令(网上可以找到)来测试连接。如果出现如下结果,则连接成功。model为设备名称,后面配置时会用到。然后点击下图中箭头所指的按钮,会出现一个配置页面:右下角的JSONRepresentation配置了启动app的DesiredCapabilities参数,分别是paltformName、deviceName、appPackage、appActivity。platformName:平台名称,一般为Android或iOS。deviceName:设备名称,具体手机类型appPackage:App包名appActivity:入口Activity名称,一般以.开头。platformName和deviceName比较容易获取,appPackage和appActivity可以通过以下方法获取。在控制台输入adblogcat>D:\log.log命令,并在手机端打开抖音app,然后打开D盘的log.log文件,找到Displayed关键字。从上图中我们可以知道Displayed后面的com.ss.android.ugc.aweme对应的是appPackage,.main.MainActivity对应的是appActivity。最后,我们的配置结果如下:点击StartSession即可在安卓手机app上启动,进入启动页面。同时PC端会弹出调试窗口。在此窗口中,您可以预览当前的手机页面,模拟手机上的各种操作。这不是本文的重点,略过。下面我们将使用python脚本来驱动app,直接在pycharm中运行即可。效果如下:
