新手使用python抖音无水印解析带详细注释

Partner 站长学院 2020-12-1 热度 1.39K℃ 收藏 本文共2281个字,预计阅读时间需要6分钟。

注释都很详细,可以看看注释!友情提醒,仅供学习使用,请勿用于非法用途!

代码如下:

#requests模块用来get网页请求
#re模块用来正则
def take_video(http_):#_函数开始,一个名字叫做http_的参数
    headers = {#这里先设置一下协议头,因为需要手机的协议头来获取地址
        'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Mobile Safari/537.36'
    }
    bake_http = requests.get(http_,headers = headers,allow_redirects = False)#get用户输入的网址,提交协议头,并且把allow_redirects设置为False来禁止重定向
    regular_bake = re.findall(r'/video/(\d*)',bake_http.text,flags=re.M)#正则一下返回的文本,取出/video/后面的ID;\d*来表示0或者多个数字
    if regular_bake == None:#判断一下正则有没有成功,因为正则失败的话会返回一个None,不判断的话正则失败程序就会报错
        return '链接解析失败,失败位置:第一步'#如果没有成功,就返回失败,来提示第几步失败了
    else:
        bake_id = regular_bake[0]#成功的话就取出来正则的第一个匹配项,复制给变量ID;正则失败的话调用这个就会报错的!所以上面判断一下
    bake_http = requests.get('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='+ bake_id,headers = headers,allow_redirects = False)
    # 拼接一下取出来的ID,继续提交协议头和禁止重定向
    works_name = bake_http.json()['item_list'][0]['desc']#取出来返回Json格式中的作品名字,赋值给变量
    works_nickname = bake_http.json()['item_list'][0]['author']['nickname']#取出来返回Json格式中的作者名字,赋值给变量
    works_music = bake_http.json()['item_list'][0]['music']['play_url']['uri']#取出来返回Json格式中的作品音乐,赋值给变量
    if works_music == '':#这里判断一下作品的音乐是不是空白
        works_music = '原声';#如果是空白的话就代表作品用的自己录制的声音,就是原声
    works_pic = bake_http.json()['item_list'][0]['video']['cover']['url_list'][0]#取出来返回Json格式中的作品封面图片,赋值给变量
    works_video_url = str(bake_http.json()['item_list'][0]['video']['play_addr']['url_list'][0])#取出来返回Json格式中的视频URL,赋值给变量
    works_video_url = works_video_url.replace('/playwm/','/play/')#把视频URL中的/playwm/替换为/play/
    bake_http = requests.get(works_video_url,headers = headers,allow_redirects = False)#替换视频URL之后就开始Get这个网址,提交协议头,禁止重定向
    works_video_url = bake_http.text#取出来返回的文本内容
    regular_bake = re.findall(r'[a-zA-z]+://[^\s]*', bake_http.text, flags=re.M)#正则一下,取出来返回文本中的网址,[a-zA-z]+://[^\s]*来自精益编程助手
    if regular_bake == None:#同上,判断一下是否匹配失败
        return '链接解析失败,失败位置:第二步'#失败的话返回在第二步出错
    else:
        works_video_url = regular_bake[0]#成功的话就取出来第一个匹配项,就是无水印地址
    return f'作品标题:{works_name}\n作品作者:{works_nickname}\n作品图片:{works_pic}\n作品音乐:{works_music}\n作品无水印地址:{works_video_url}'
    #拼接一下取出来的各种值,拼接一下,返回
 
http_ = input('请输入抖音分享链接:')#程序跑起来,先运行这个
if http_.find('v.douyin.com/') == -1:#判断一下用户输入的是不是抖音链接
    print('您输入的不是抖音链接,应该是包含“v.douyin.com/”的链接形式!')#如果不是,就提示,然后结束运行、、、
else:
    http_ = take_video(http_)#如果是,就运行上面的名字叫做take_video的函数,并且把返回内容保存在http_的变量里
    print(http_)#输出http_
版权声明:本文内容来源于互联网资源,由 蓝魅网络 整理汇总,如有侵权请您与我们联系删除!
其他声明:如未标明出处,所有文章均为蓝魅网络原创,转载请务必保留本文链接,感谢您支持。
蓝魅网络 » 新手使用python抖音无水印解析带详细注释
  • 售后服务范围 1、商业模板使用范围内问题免费咨询
    2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限会员用户
    3、单价超过200元的模板即可以免费一次安装,需提供服务器信息
    付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
    2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
    3、服务器环境配置安装(一般 ¥50-300)
    4、网站中毒处理(需额外付费,500元/次/质保三个月)
    售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
    免责声明提示 本站所提供的资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 495553705@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

低至 ¥99 元/年 爆款产品限时抢

阿里云*云小站 | 上云优惠聚集地 | 领取限量云产品优惠

立即抢购