Python爬取App用户信息!谁说爬不了的?
一. 准备工作:1.抓包工具:(1) fiddler抓包工具(v5.0.20202.18177)(安装地址:)| mitmproxy(安装、配置方法见下文)抖音 , xposed框架(安装xposed框架+trustme模块 禁止ssl证书验证 , 需要在root下操作)相关APK我放在了这里 。 (2)夜神模拟器(7.0.0.6)2.解析工具:(1)Python3.6 JetBrains PyCharm 2018.2.2 x643.存储工具(1)csv文件存储
二. 整体思路:
文章插图
(一)使用fiddler抓包工具1.设置fiddler代理 配置夜神模拟器打开fiddler 点击Tools进入Options , 按照图中勾选后点击Actions
文章插图
配置远程链接:
选择允许监控远程链接 , 端口可以随意设置 , 只要别重复就行 , 默认8888
文章插图
重启fiddler , 使配置结果生效 。
2.配置fiddler自动保存json:
点击右边Inspectors 点击OnBeforeResponse 按箭头指示操作即可 。
文章插图
加入我们的脚本 , 用于保存响应体中的json文件 。
2. static function OnBeforeResponse(oSession: Session) {//1.保存用户信息脚本if (oSession.uriContains("")){var strBody=oSession.GetResponseBodyAsString();var sps = oSession.PathAndQuery.slice(-58,);//FiddlerObject.alert(sps)//根据自己情况修改路径var filename = "路径" + "/" + sps + ".json";var curDate = new Date();var sw : System.IO.StreamWriter;if (System.IO.File.Exists(filename)){sw = System.IO.File.AppendText(filename);sw.Write(strBody);}else{sw = System.IO.File.CreateText(filename);sw.Write(strBody);}sw.Close();sw.Dispose();}//2.保存视频脚本oSession.utilD ecodeResponse();if (oSession.fullUrl.Contains("dy.ixigua.com/")){oSession.SaveResponseBody("E:\\Fiddler\\" + oSession.SuggestedFilename);}(二)使用mitmproxy 的mitmdump抓包
1.mitmproxy中mitmdump可与python互联 安装方法详见 。 将mitmproxy与模拟器链接好之后 , 编写python 脚本
import osimport mitmproxy.httpfrom mitmproxy import ctxdef response(flow:mitmproxy.http.HTTPFlow):#选择本地文件路径path='E:/dy_project/dy_data_mitmdump'try:os.mkdir(path)except:passaim_url=''#捕捉所有目标url开头的urlif flow.request.url.startswith(aim_url):#将响应体赋值到json_data中json_data=http://kandian.youth.cn/index/flow.response.content#定义文件名:‘dy_user_data_’+时间戳filename='dy_u_data'+flow.request.url.split(' --tt-darkmode-color: #999999;">此脚本会为我们保存响应体中的json到本地(我这里制定了格式:dy_u_data+时间戳 , 保证文件的唯一性) 。
启动模拟器 开启脚本:
mitmdump -q -s save_data_to_json.py1可以将启动脚本写为.bat文件 , 方便启动 。
cd E:\dy_projecte:mitmdump -q -s save_data_to_json.py123#说明-q 屏蔽 mitmdump 默认的控制台日志 , 只显示自己脚本中的-s 入口脚本文件–set body-size-limit=10k 只处理小于 10k 的请求“~m post” 只处理 post 方法的请求12345ps:可以通过 夜神模拟器—操作录制 实现视频的自动滑动 。
2.使用python处理响应体
三.得到json文件:
文章插图
)json在手 , 解析不愁 。 四.解析、保存数据
import osimport json#解析json主函数def parse(self,_json):file=open(_json,'r',encoding='utf8')for line in file.readlines():json_data=http://kandian.youth.cn/index/json.loads(line)user=json_data.get('user')user_name=user.get('nickname')#用户名user_uid=user.get('uid')#个人iduser_id=user.get('unique_id')#唯一iduser_gender=user.get('gender')#性别user_country=user.get('country')#国家user_city=user.get('city')#城市user_province=user.get('province')#省user_school_name=user.get('school_name')#学校名user_birthday=user.get('birthday')#生日user_verify=user.get('custom_verify')#认证user_aweme_count=user.get('aweme_count')#作品数user_favorite=user.get('favoriting_count')#ta喜欢数user_signature=user.get('signature')#个人签名user_focus=user.get('following_count')#关注数user_appreciate=user.get('total_favorited')#点赞数user_fans=user.get('mplatform_followers_count')#粉丝数【Python爬取App用户信息!谁说爬不了的?】当然 , 您也可以选择边抓包边解析边存储 , 只需要将启动mitmdump时带上自己的脚本即可 。
解析出的结果可自行选择保存方式 , 我保存到了csv文件中 。
文章插图
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
- 程序|2020全景生态流量秋季大报告:TOP100APP超半数布局小程序,全景流量重塑行业竞争新格局
- 手机|这个超强App,让手机快3倍,流畅到起飞
- 互联网|强制收集个人信息?国家网信办拟为38类App戴紧箍
- 责令|1336款APP被责令整改,三大问题突出
- 定制|业绩宝APP创始人戴宏伟:依靠人工智能主动获客,打通全链路
- 社区团购|你在买菜APP上薅的每一根羊毛,都将加倍奉还!
- Store|在BlueMail的App Store反垄断案中 法官作出有利于苹果公司的判决
- 短视频|全球最火APP?抖音爆火背后离不开这几剂“猛药”为什么抖音能够这么火?
- mini|电影、mini 与「当日完稿」工作流
- 搜索|iOS版WhatsApp更新:增加新的墙纸和贴纸搜索功能
