GET https://aweme-hl.snssdk.com/aweme/v1/user/follower/list/?user_id=103313639528&sec_user_id=MS4wLjABAAAAxj2Cuu75g3I2pGOs7jtw5XN6WMiCKbA-jfIjlONRRvM&max_time=1570336550&count=20&offset=0&source_type=1&address_book_access=1&gps_access=1&openudid=3ca06768d1f58615&version_name=8.1.1&ts=1570336895&device_type=OPPO%20R11&ssmix=a&iid=87664447665&app_type=normal&os_api=19&mcc_mnc=46007&device_id=68799320259&resolution=720*1280&device_brand=OPPO&aid=1128&manifest_version_code=811&app_name=aweme&_rticket=1570336895512&os_version=4.4.2&device_platform=android&version_code=811&update_version_code=8112&ac=wifi&dpi=240&uuid=866174010601603&language=zh&channel=tengxun_new HTTP/1.1
我们会发现这个请求的url带有很多很多的参数,没错,这是抖音自身的加密方法,要破解这个可得好一会了,所以我们无法使用requests直接构造请求来获得数据了,那我们该如何获取数据呢?
没错就是使用mitmdump,mitmdump有个最大的好处就是可以与python文件交互,我们可以直接使用python写好命令,使用mitmdump抓包,我们手动的滑动就可以解析出数据了
编写douyin_mitmdump.py文件 代码如下:
import json
#函数名必须这样写 这是mitmdump规则
def response(flow):
#下面这个网址是通过fiddler获取到的 但是有些数据我们无法解密,所以需要用mitmdump捕获数据包然后做分析
if ‘aweme-hl.snssdk.com/aweme/v1/user/follower/list’ in flow.request.url:
for user in json.loads(flow.response.text)[‘followers’]:
user_info={}
user_info[‘nickname’] = user[‘nickname’]
user_info[‘share_id’] = user[‘uid’]
user_info[‘douyin_id’] = user[‘short_id’]
#有的用户修改了抖音号
if user_info[‘douyin_id’] == ‘0’:
user_info[‘douyin_id’] = user[‘unique_id’]
print(user_info)
现在打开cmd并切换到项目目录下 执行命令 mitmdump -p 8889 -s douyin_mitmdump.py
接下来手动滑动界面看看会不会解析数据