mitmproxy charles 夜神模拟器实现抖音半自动化无水印视频爬虫(2020.3.8)

╄→гoц情女王★ 提交于 2020-03-09 04:55:55

前言: 出于兴趣,这里来做了一个半自动化的抖音视频爬虫,该爬虫可以实现爬取某一用户发布的所有视频。

环境: 夜深模拟器(安卓4)

CODE:

import json,os
import requests

def response(flow):
    #分析数据发现这是抖音旧的视频请求地址(估计是防爬取定时换的吧)
    #url='https://api.amemv.com/aweme/v1/aweme/post/'
    url='https://api3-normal-c-lq.amemv.com/aweme/v1/aweme/post/'
    #筛选出以上面url为开头的url
    if flow.request.url.startswith(url):
        text=flow.response.text
        #将已编码的json字符串解码为python对象
        data=json.loads(text)

        #在charles中刚刚看到每一个视频的所有信息
        #都在aweme_list中
        video_url=data['aweme_list']
        print(video_url)
        path='G:/Others/Douyin'
		#path='D:\crawler_data\douyin'
        if not os.path.exists(path):
            os.mkdir(path)
        for each in video_url:
            #视频描述
            desc=each['desc']
            url=each['video']['play_addr']['url_list'][0]
            # print(desc,url)
            filename=path+'/'+desc+'.mp4'
            # print(filename)
            req=requests.get(url=url,verify=False)
            with open(filename,'ab') as f:
                f.write(req.content)
                # 在文件关闭前,将缓存区的内容刷新到硬盘
                f.flush()
                print(filename,'下载完毕')

Charles分析:

成果:

 PS:

1、由于mitmdump自带的包只是基本python库,这里需要将python代码放到python的site-packages文件夹中运行。

 2、在刷抖音的过程中,想下载谁的视频,只需要将代码运行着,点谁的用户的主页就可以下载到视频。

3、在模拟器的配置过程中,遇到了配置好mitmproxy证书以后抖音无法正常联网的情况,这里需要搜索一下安卓关闭SSL教程,需要刷xpose框架,和一个什么东西,搜索一下模拟器关闭SSL即可。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!