卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11201本站已运行3223

[Python] 某音图文、BGM获取,下载到本地-无水印

执行程序,然后将APP端,或者pc端获取的分享,填写到程序中;
Python版本:Python3.8
提取文案、无水印图片、背景音乐;


from urllib import request
import re
import requests 
 
 
class DyDownload():
    def desc(self, desc_data):
        # 将文案内容保存到txt文档内
        # #根据文案长度提取特定长度的文字作为文件名
        if len(desc) > 20:
            desc_name = desc[1:20]
        else:
            desc_name = desc[1:10]
        f = open(desc_name + '.txt', 'w', encoding='utf-8')
        f.write(desc_data)
        f.close()
        print("文案保存成功")
 
    def music(self, name, url):
        # 保存音乐
        r = requests.get(url)
        with open(name + '.mp3', 'wb') as f:
            f.write(r.content)
        print("音乐保存成功")
 
    def images(self, name, url):
        # 获取图片并保存图片
        r = requests.get(url)
        with open(name + '.jpg', 'wb') as f:
            f.write(r.content)
 
 
Download = DyDownload()
api = "https://www.douyin.com/web/api/v2/aweme/iteminfo/?item_ids="
 
# 图文分享链接
short_url = input("请输入抖音图文短链接")
 
# 短连接解析并且取出内容ID
content_id = re.findall(r"\b\d+\b", request.urlopen(short_url).geturl())[0]
 
# 设置请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# 请求返回的json数据
response = requests.get(api + content_id, headers=headers).json()
 
# 获取图片数量
image_quantity = response["item_list"][0]["images"]
 
if image_quantity is None:
    print(f"{content_id}不是图文无法下载")
else:
    print("正在获取图文信息..")
    # 获取图片列表
    images_content = response["item_list"][0]["images"]
    # 获取账号主昵称
    nickname = response["item_list"][0]["author"]["nickname"]
    # 获取音乐名称
    music_name = response["item_list"][0]["music"]["title"]
    # 获取音乐下载地址
    music_url = response["item_list"][0]["music"]["play_url"]["uri"]
    # 获取文案
    desc = response["item_list"][0]["desc"]
 
    Download.desc(desc)
    Download.music(music_name, music_url)
 
    for i in range(len(images_content)):
        images_url = images_content[i]["url_list"][3]
        Download.images(str(i), images_url)
        print(f"{str(i)}号图片保存成功")
    print("文案,音乐,图片,任务全部完成")
卓越飞翔博客
上一篇: 【html特效】css美化滚动条带条纹动画效果
下一篇: [Python] 动态域名解析By腾讯云SDK
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏