随着身体的一阵抖动,python 下载的抖音小姐姐都没味了

Python绿色通道

共 2612字,需浏览 6分钟

 ·

2021-12-30 03:27

↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包

文 | 某某白米饭

来源:Python 技术「ID: pythonall」

大家好,我是龙哥!

大伙都知道抖音上有非常多的漂亮小姐姐,说话又好听,皮肤又好。刷的都停不下来。

爬虫开始

首先将 google 浏览器在设置中将将重定向设置成否,再打开 F12 控制面板设置页面为 android 样式,如下图:

然后开始把抖音分享的地址,复制到地址栏。在控制面板的网络中,就可以找到那个 url,提取header 下的 location 与其中的 sec_uid。

import request
import re
import json
import os
import time

headers = {
    "user-agent""Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Mobile Safari/537.36"
}

#share  = '长按复制此条消息,打开抖音搜索,查看TA的更多作品。https://v.douyin.com/Rwauvh4/'
share = input('分享的链接:')

url = re.findall('(https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]+)', share)[0]

resp = requests.get(url=url, headers=headers, allow_redirects=False)
location = resp.headers['location']

temp = location.split('&')
sec_uid = temp[4].split('=')[1]
print(sec_uid)

在控制面板中有一个 /web/api/v2/user/info/ 的地址,这个就是用户的个人资料。其中有需要的昵称,提取后创建文件夹。

url = "https://www.iesdouyin.com/web/api/v2/user/info/?sec_uid={}".format(sec_uid)
resp = requests.get(url, headers=headers)
userinfo = json.loads(resp.text)

name = userinfo['user_info']['nickname']

if os.path.exists(name) == False:
    os.mkdir(name)
os.chdir(name)

从响应面板中找到一个是 json 串返回值的,并且有视频标题的存在 /web/api/v2/aweme/post/,这个就是我们需要的。这里面包含了:视频的地址和标题。它有五个 post 参数:1. sec_uid,2. count 每次查询的视频个数,3. max_cursor:时间戳,4. _signature:标记,5. 还有一个隐藏的 min_cursor:最小的时间戳

year = [2020,2021,2022]
cursor = []
for y in year:
    for i in range(1,13):
        calc = str(y) + '-'+ str(i) + '-' + '01 00:00:00'
        timeArray = time.strptime(calc, "%Y-%m-%d %H:%M:%S")
        timeStamp = int(time.mktime(timeArray)) * 1000
        cursor.append(timeStamp)

for i in range(len(cursor) - 1):
    params = {
        "sec_uid": sec_uid,
        "count"200,
        "min_cursor": cursor[i],
        "max_cursor": cursor[i+1],
        "_signature""Sq1xlgAAK2.rxFYl7oQq7EqtcY"
    }


    url = 'https://www.iesdouyin.com/web/api/v2/aweme/post/?'

    resp = requests.get(url=url, params=params, headers=headers)
    data = json.loads(resp.text)
    awemenum = data['aweme_list']
    for item in awemenum:
        title = re.sub('[\/:*?"<>|]','-',item['desc'])
        url = item['video']['play_addr']['url_list'][0]
        print(title + ":" + url)

获取到视频列表后循环下载每个视频,并写入文件中。

with open(title + ".mp4"'wb'as f:
    f.write(requests.get(url, headers=headers).content)
    print(title + "------------------下载完成")

总结

上班摸鱼下载,下班路上愉快的刷刷刷。觉得本文还可以的小伙伴,可以点个赞吗?

推荐阅读

  1. 好朋友出书了!SQL数据分析,给大家争取到了五折福利,另文末送书。

  2. 你的花呗额度为啥那么低?我用Python帮你做分析

  3. 微信和QQ,终于可以互通了!

  4. 2022年春晚小品提前泄露!



浏览 55
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报