zl程序教程

您现在的位置是:首页 >  后端

当前栏目

零基础学Python-爬虫-5、下载音频

2023-09-14 09:04:58 时间

本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击【python爬虫】分类专栏进行倒序观看:

【重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收益,只为大家学习分享。】

开发环境:【Win10】

开发工具:【Visual Studio 2019】

Python版本:【3.7】

总是版权问题,我就尽量删掉网站上的截图了,主要内容都在编码中。

目标:【更多-->音乐-->音乐页面】

1、查找目标位置:

 

播放的路径:【https://audio04.dmhmusic.com/71_53_T10049727031_128_4_1_0_sdk-cpm/cn/0208/M00/9C/D5/ChR47F0u0WCAGK0BAHsyIZRAuzg486.mp3?xcode=986ee76b251cf5ea7c25506b1e42484eca69d0d

查看访问路径与需要参数:

2、解析路径,获取一个音乐集合的路径:

 

3、解析获取id与title

import requests
import uuid
import random
import time
#可更换参数:tab={}&num={}我这里不多下载,10个就可以了。
url ="https://music.taihe.com/v1/song/info?sign=03f0d20475fe5fb6c669c50fb92778b5&appid=16073360&TSID=T10049727031%2CT10049726992%2CT10038911463%2CT10039002156%2CT10038856674%2CT10038856669%2CT10038926584%2CT10038926593%2CT10038992003%2CT10038992010%2CT10054620501%2CT10038818736%2CT10057229599%2CT10055694882%2CT10057217243%2CT10056317505%2CT10056970485%2CT10056970489%2CT10057218352%2CT10038929666%2CT10038902299%2CT10038928529%2CT10054168932%2CT10038980134%2CT10038980150%2CT10038818871%2CT10038859760%2CT10038859749%2CT10041237453%2CT10038833747%2CT10038873333%2CT10040588990%2CT10038992597&timestamp=1613374105"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}
resp = requests.get(url, headers=headers)
resp_json = resp.json()
data_list = resp_json['data']
lst=[]
for x in data_list:
    print(x['id'])
    print(x['title'])

一共32个地址,一会看能下载多少音乐。

4、拼接单个音乐链接地址与下载音乐:

import requests
import uuid
import random
import time
#可更换参数:tab={}&num={}我这里不多下载,10个就可以了。
url ="https://music.taihe.com/v1/song/info?sign=03f0d20475fe5fb6c669c50fb92778b5&appid=16073360&TSID=T10049727031%2CT10049726992%2CT10038911463%2CT10039002156%2CT10038856674%2CT10038856669%2CT10038926584%2CT10038926593%2CT10038992003%2CT10038992010%2CT10054620501%2CT10038818736%2CT10057229599%2CT10055694882%2CT10057217243%2CT10056317505%2CT10056970485%2CT10056970489%2CT10057218352%2CT10038929666%2CT10038902299%2CT10038928529%2CT10054168932%2CT10038980134%2CT10038980150%2CT10038818871%2CT10038859760%2CT10038859749%2CT10041237453%2CT10038833747%2CT10038873333%2CT10040588990%2CT10038992597&timestamp=1613374105"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'}
resp = requests.get(url, headers=headers)
resp_json = resp.json()
data_list = resp_json['data']
lst=[]
for x in data_list:
    lst.append({"id":x["id"],"title":x["title"]})

#以下为存储过程
# 遍历列表存储所有图片
for item in lst:
    # 发送请求
    try:
       musicUrlBase=str.format("https://music.taihe.com/v1/song/tracklink?sign=14bcbe5b209a984dac25dad3b96c6dfb&appid=16073360&TSID={0}&timestamp=1613374106",item["id"]);
       resp1=requests.get(musicUrlBase)
       resp_json1 = resp1.json()
       pic= requests.get(resp_json1["data"]["path"], timeout=100)
    except:
        print ('错误:当前音乐无法下载')
        continue
    # uuid4为图片名称
    #,创建img文件夹, wb+:写入二进制数据
    file=open(str.format("{0}.mp3",item["title"]), 'wb+')
    file.write(pic.content)
    file.close()
    print(item["title"],"下载完毕")
    #每次操作完休息1~3s
    timeStop=random.randint(1,4)
    time.sleep(timeStop)
print("完成")

5、音乐播放测试:

6、总结:

a)、下载过程中有无法下载的音乐,没有具体测试原因。

b)、可以试试其它网站,因为百度大家都知晓,我就用这个测试了。其它的也就是第一步麻烦一些,找吧,找吧,习惯就好了。

欢迎【点赞】、【评论】、【关注】、【收藏】、【打赏】,为推广知识贡献力量。

【小说、图片、视频、音乐】都爬取完毕了,python爬虫的课程也就到此结束了。图形化页面没什么实际意义,我就不做编辑了,晚上我弄个基础环境画个❤,画朵花仅供欣赏。