Python
# -*- coding: utf-8 -*-
"""
* @Date : 2020-09-22 20:32
* @Auth : xiaoshuai.zhu
* @File :抖音短视频.py
* @IDE :PyCharm
* @Version 1.0
"""
import requests,re,json
url=' https://v.douyin.com/JAgRAyr/' # 抖音短视频分享链接:看了两遍《大鱼海棠》,我去寻找了椿的家——福建土楼。#盘个福地上热门@福建省文化和旅游厅
est1=requests.get(url) # 请求短视频链接网址
uq=re.findall('video/(\d+)/',str(est1.url))[0] # 使用正则表达式,返回string中所有与video相匹配的全部字串
ur11=f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={uq}' # 请求解析,谷歌浏览器F12调试模式 - xhr - 看到video字样,拿到这个json的地址解析短视频信息
est2=requests.get(ur11).text # 返回unicode型的数据,取出文本数据
js1=json.loads(est2) # 把上一步取回的文本转化成python的json对象
url3=str(js1['item_list'][0]['video']['play_addr']['url_list'][0]).replace('playwm','play') # string 转换 url ,wm 表示 water mask,通过 playwm 替换成 play 去水印,切换后就会重定向到新的链接,这个链接就是去水印后的短视频地址
title=str(js1['item_list'][0]['desc']) # 返回"标题"的字符串,
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3329.0 Mobile Safari/537.36'} #通过把user-agent切换成移动设备查看看谷歌浏览器用户代理 chrome://version 得到
est=requests.get(url=url3,headers=headers) #向url发起请求获取响应对象
with open(f'{title}.mp4','wb') as f: # 调用With open函数,用二进制格式打开一个文件进行读写,如果文件已存在则覆盖。如果该文件不存在,创建新文件,文件命名规则:{title}.mp4
f.write(est.content) # 将请求到的对象进行创建并写入数据