赞
踩
为什么不用fiddler抓取后直接oy文件处理,而还要借助mitmproxy?
大:因为fiddler时可以抓取到api接口的数据包,但是有些app的api接口post 的请求数据不知道他抛过去的数据的加密算法,也就无法模拟客户端post数据,比如豆果美食就可以模拟,因为数据基本是死的。而抖音不知道post过去的一些必要参数是怎么来的,所以直接获取不到。这时候就要借助mitmproxy里面的mitmdump来操作。
接下来开始mitmdump的实际运用操作。如下:
第一步:先借助 fiddler 通过抓包软包软件获取请求的接口,分析出不能手动模拟post的请求参数,所以决定采用mitmdump来实现数据的抓取。
第二步:用于mitmdump 的 python代码如下:decode_douyin_fans.py 如下
- import json
- # 这个地方必须这么写 函数名:response
- def response(flow):
- # 通过抓包软包软件获取请求的接口
- if 'aweme/v1/user/follower/list' in flow.request.url:
- # 数据的解析
- for user in json.loads(flow.response.text)['followers']:
- douyin_info = {}
- douyin_info['share_id'] = user['uid']
- douyin_info['douyin_id'] = user['short_id']
- douyin_info['nickname'] = user['nickname']
- print(douyin_info)
第三步:需要开启模拟器,然后设置好代理。然后cmd这里也要同时运行mitmdump,这样就能在拉动抖音页面的时候可以在cmd页面看到数据了。如下:
cmd运行着段代码 mitmdump -s decode_douyin_fans.py -p 8889 说明:mitmdump -s py文件 -p 模拟器代理端口
显示下面这样,就说明mitmdump运行成功了。
打开抖音app,点开我们想知道的名人的粉丝列表,获取粉丝们的先关信息。通过在粉丝列表拉动的过程中,我们就能发现,
cmd会有如下 的情况显示出来:
说明我们的mitmdump运行的py文件是成功的,同时说明我们当前写的关于mitmdump 的 py程序是对的。
第四步:接下来就是把数据存入mongodb数据库:
在 handle_db.py 文件里面新加一个函数,用于写入mongodb数据库
下面的意思是说,如果数据库里面已经有相同的share_id了,就进行更新,没有的话就插入。
- # 如果数据库里面已经有相同的share_id了,就进行更新,没有的话就插入。
- def save_task(task):
- task_id_conllection = Collection(db,'task_id')
- task_id_conllection.update({'share_id':task['share_id']},task,True)
然后在decode_douyin_fans.py文件里引入handle_db文件,然后调用save_task函数
第五步:然后cmd运行
mitmdump -s decode_douyin_fans.py -p 8889
手动滑动抖音粉丝列表
mongodb数据库就会出现插入进去新数据,如下:
到此,第一阶段完成
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。