本套课程正式进入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
代码语言:javascript复制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,T10049726992,T10038911463,T10039002156,T10038856674,T10038856669,T10038926584,T10038926593,T10038992003,T10038992010,T10054620501,T10038818736,T10057229599,T10055694882,T10057217243,T10056317505,T10056970485,T10056970489,T10057218352,T10038929666,T10038902299,T10038928529,T10054168932,T10038980134,T10038980150,T10038818871,T10038859760,T10038859749,T10041237453,T10038833747,T10038873333,T10040588990,T10038992597×tamp=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、拼接单个音乐链接地址与下载音乐:
代码语言:javascript复制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,T10049726992,T10038911463,T10039002156,T10038856674,T10038856669,T10038926584,T10038926593,T10038992003,T10038992010,T10054620501,T10038818736,T10057229599,T10055694882,T10057217243,T10056317505,T10056970485,T10056970489,T10057218352,T10038929666,T10038902299,T10038928529,T10054168932,T10038980134,T10038980150,T10038818871,T10038859760,T10038859749,T10041237453,T10038833747,T10038873333,T10040588990,T10038992597×tamp=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}×tamp=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)、可以试试其它网站,因为百度大家都知晓,我就用这个测试了。其它的也就是第一步麻烦一些,找吧,找吧,习惯就好了。