python爬虫+抖音分享链接=可直接下载视频链接
"""
20210429更新文件下载功能,以时间戳为文件名的MP4格式文件。
#以下代码仅供学习参考。
"""
import requests
import re
import time
headers1 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'}
base_url = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids="
def parse(dy_link):
stats1 = requests.get(url=dy_link, headers=headers1)
locationlink = stats1.url # 使用response.url ,可以直接提取location 链接地址。
pp1 = requests.get(url=locationlink, headers=headers1)
referer_url = pp1.url
header2 = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
'referer': referer_url
}
videonum = re.search(r"\d+", referer_url).group()
baseurl = base_url + videonum
videourl = requests.get(url=baseurl, headers=header2).json() # 响应回来得页面是ajax 技术,需要用.json将内容提取出来
videourl = videourl['item_list'][0]['video']['play_addr']['url_list'][0] # 提取跳转链接
downloadUrl = requests.get(url=videourl, headers=header2).url # 获取到视频链接
#return print("解析后抖音小视频下载链接:" + downloadUrl + '.mp4')
"""
20210429
以时间为文件名,直接下载成MP4格式的视频
"""
filename = str(time.time())+".mp4" #以时间为文件名,直接下载成MP4格式的视频
mp4file = requests.get(url = downloadUrl,headers=headers1).content
with open(filename,"wb") as f :
f.write(mp4file)
print("视频文件已下载完成。")
"""下载速度,取决于网络速度(待定)"""
if __name__ == '__main__':
while True:
inputurl = input("请输入抖音分享URL:") # 格式eg:https://v.douyin.com/JTQaGrX/
t1 = time.time()
parse(inputurl)
t2 = time.time()
tt = t2 - t1
print('解析耗时(sec):', round(tt, 2))