爬虫之音乐

现在知识版权比较认真,以下内容仅供学习时练手用。

爬取某网站歌曲 url= http://music.taihe.com/

源码如下:

# -*- coding: UTF-8 -*-
#http://music.taihe.com/
import requests
import re


class climb():
    def __init__(self):
        #示例输入:242078437
        self.task1=input("如果下载某一首歌曲请输入该歌曲,否则1:")
        # url="http://music.taihe.com/artist/7994?pst=sug"
        self.task2=input("如果下载某网页所有歌曲,请输入网页:")
    def get_songid_list(self,url):
        # url="http://music.taihe.com/artist/7994?pst=sug"
        respond=requests.get(url)
        respond.encoding=respond.apparent_encoding
        # print(respond.text)
        list=re.findall('data-songid="(\d+)"',respond.text)
        list=set(list) #去重
        #逐一下载
        for i in list:
            self.getsong(i)
    def getsong(self,songid):
        #歌曲地址
        url="http://musicapi.taihe.com/v1/restserver/ting?method=baidu.ting.song.playAAC&format=jsonp&songid=%s&from=web&_=1546260415038"%songid
        resspond = requests.get(url)
       # resspond.encoding=resspond.apparent_encoding  自动解决乱码可选
        json_respond=resspond.json()
        print(json_respond['bitrate']['file_link'])
        print(json_respond['songinfo']['title'])
        self.downfile(json_respond['bitrate']['file_link'],json_respond['songinfo']['title'])

    def downfile(self,url,music_name):
        music_response=requests.get(url)
        with open(r"E:\\untitled\\音乐\\"+music_name+".mp4",mode='wb')as f:
            f.write(music_response.content)
            print("下载"+music_name)

    def main_function(self):
        if self.task1!= "1":
            self.getsong(self.task1)
        elif self.task2 != None:
            self.get_songid_list(self.task2)
if __name__ == '__main__':
    do=climb()
    do.main_function()

以上代码可以单一下载某一歌曲,也可以下载整个歌单,当然有心的再琢磨下如何翻页吧,宝宝累。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值