以下步骤在下载抖音“作品”和“喜欢”测试有效。
--2021年8月29日
打开抖音app
找到主页链接
如果想要下载自己的视频,找到自己的的二维码,右上角分享按钮点击后复制链接;
如果想要下载别人的视频,点击他主页的右上角,分享,复制链接即可复制主页链接。
找到请求的url
打开浏览器的调试工具,找到?sec_uid的字段,先复制下来。
分析url
参考https://www.cnblogs.com/yszr/p/14494070.html
下载视频
把url复制到下面,代码来自https://www.cnblogs.com/yszr/p/14494070.html ,做了一行修改,可以设置下载的视频保存的路径了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| import requests import json from urllib import parse import re
url = "https://www.iesdouyin.com/web/api/v2/aweme/like/?sec_uid=MS4wLjABAAAAgq8cb7cn9ByhZbmx-XQDdRTvFzmJeBBXOUO4QflP96M&count=21&max_cursor=0&aid=1128&_signature=RKo50gAAJNqj3cHUYlkR6kSqOc&dytk="
headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0" } r = requests.get(url=url, headers=headers, stream=True)
print("初始访问状态:", r)
data_json = json.loads(r.text)
print(data_json.keys()) print(data_json)
has_more = data_json['has_more'] max_cursor = data_json['max_cursor']
while has_more == True: print('has_more:', has_more) url_parsed = parse.urlparse(url) bits = list(url_parsed) qs = parse.parse_qs(bits[4]) qs['max_cursor'] = max_cursor bits[4] = parse.urlencode(qs, True) url_new = parse.urlunparse(bits)
r = requests.get(url=url_new, headers=headers, stream=True) data_json = json.loads(r.text) has_more = data_json['has_more'] max_cursor = data_json['max_cursor'] print('maxcursor22:', max_cursor) for i in range(len(data_json['aweme_list'])): url_1 = data_json['aweme_list'][i]['video']['play_addr_lowbr']['url_list'][0] print(url_1) t = data_json['aweme_list'][i]['desc'] r = requests.get(url=url_1, headers=headers, stream=True) print(r) reponse_body_lenth = int(r.headers.get("Content-Length")) print("视频的数据长度为:", reponse_body_lenth) path = '' + t + '.mp4' rstr = r"[\/\\\:;\*#¥%$!@^……&()\?\"\<\>\|]" path = re.sub(rstr, "", path) path = "./videos/" + path with open(path, "wb") as xh: print(path) write_all = 0 for chunk in r.iter_content(chunk_size=1000000): write_all += xh.write(chunk) print("下载进度:%02.6f%%" % (100 * write_all / reponse_body_lenth))
|
本方法可以下载所有喜欢视频,也可以下载所有作品。
参考资料:https://www.cnblogs.com/yszr/p/14494070.html