利用requests爬取网易云音乐

1、打开网易云选择喜欢的歌手

2、爬取网站

3、创建文件夹

import requests
from bs4 import BeautifulSoup

def music():
    url = 'https://music.163.com/artist?id=29051613'
    #伪装自己
    headers = {
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.1071 SLBChan/21',
        'referer': 'https://music.163.com/'
    }
    data = {
        "params": "+H6D23233AX7 + ZhHr4HqHLeDwi5A9nhbtTqkxhoFC / A9Jf01CuoQpZ + AX7YFx + +W",
        "encSecKey": "0b87f8306db58707587ee170832712c5781f96adc1890048e339977a819f26b86f814c91b2bafbb123a35de4da4d16678f1f5ca2af99657b48048a30dad0b18ed14e2f32c23145c6e42349af1356287119e7b1157b544f292b212d7014168b22605b83692af7fc5c4fd3395c86fa7ea9395b4b9fb560b83268044be825c61723"
    }
    response = requests.get(url=url,headers=headers,params=False,data=data).content.decode("utf-8")

    s = BeautifulSoup(response, 'lxml')
    main = s.find('ul', {'class': 'f-hide'})
    list= main.find_all("a")


    for i in list:
        name = i.text.replace("/"," ")
        music_url = 'http://music.163.com/song/media/outer/url' + i['href'][5:] + '.mp3'

        # 第一次没有这两行代码,所以下载出来文件是错误的。因为请求中有重定向,禁止以后,再次访问重定向的链接就行了
        response = requests.get(music_url, headers=headers, allow_redirects=False, data=data)
        url = response.headers.get('Location')

        music = requests.get(music_url,headers=headers,data=data).content
        with open('D:/郑润泽/'+name + '.mp3', mode='wb') as file:
            file.write(music)
        print(name + "正在下载")
    print("over!!!")
if __name__ == '__main__':
    music()



  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值