1、代码
import os
import re
from concurrent.futures import ThreadPoolExecutor
import requests
def get_urls(max_cursor):
	# 请求头 (页面获取)
    headers = {
        'Cookie': '',
        'Referer': '',
        'User-Agent': ''
    }
    # 请求地址(页面获取)
    url = ''
	# max_cursor 为分页游标
    pattern = r'max_cursor=(\d+)'
    match = re.search(pattern, url)
    if match:
        result = match.group(1)
        url = url.replace(result, str(max_cursor))
	# 获取视频列表
    res = requests.get(url, headers=headers)
    data = res.json()
    d = {}
    aweme_list = data.get("aweme_list")
    for aweme in aweme_list:
        # 防止有视频同名:加上aweme_id
        title = aweme.get("desc") + aweme.get("aweme_id")
        url = aweme.get("video").get("play_addr").get("url_list")[-1]
        d[title] = url
	# 是否有下一页
    has_more = data.get("has_more")
    if has_more == 1:
        dd = get_urls(data.get("max_cursor"))
        d.update(dd)
    return  d
def download(name, url):
    res = requests.get(url)
    # 视频存储
    with open(f"../mv/{name}.mp4", "wb") as f:
        f.write(res.content)
    print('success --> address: ', url)
def main():
	# 获取所有视频地址
    d = get_urls(0)
	# 文件存放路径
    os.makedirs('../mv', exist_ok=True)
	# 多线程下载视频
    with ThreadPoolExecutor(10) as t:
        for item in d.items():
            t.submit(download,item[0], item[1])
if __name__ == '__main__':
    main()
2、安装依赖
终端执行以下命令:
pip install requests
3、参数获取
浏览器按F12(或者鼠标右键,点击检查) ⇒ 点击网络 ⇒ 在输入框输入post,选择第一个post请求。
在常规里可以找到请求网址,就是 url
在请求标头里可以找到 Cookie、Referer、User-Agen这三个参数,ctrl+c v 替换即可。

4、视频存储路径说明
上述代码里有一行是
with open(f"../mv/{name}.mp4", "wb") as f:
视频存储在当前目录的上一级目录下的mv目录中。



















