爬取网易云音乐

代码如下

import requests
from lxml import etree
import os

url = 'https://music.163.com/discover/toplist?id=3779629'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'
}
data = requests.get(url=url, headers=headers)
html = etree.HTML(data.text)
music_list = html.xpath('//ul[@class="f-hide"]/li/a')

music_lis = []  # 存放歌曲信息
for music in music_list:
    music_name = music.xpath('./text()')[0]  # 获取歌曲名称
    music_id_all = music.xpath('./@href')[0]  # 获取a标签内容
    music_id = music_id_all.split('=')[-1]  # 将a标签内容进行数据清洗,提取歌曲的id
    download_music = music_name + ' ' + f'http://music.163.com/song/media/outer/url?id={music_id}.mp3'  # 将歌曲名称和url进行拼接
    music_lis.append(download_music)
    print(download_music)

# os.mkdir('./网易云音乐')  # 创建 文件夹

for url in music_lis:
    try:
        url_name = url.split(' ')[0]  # 获取名称
        url_music = url.split(' ')[1]  # 获取url
        print(f'{url_name}===>正在下载')
        response_music = requests.get(url=url_music, headers=headers)
        with open(f'./网易云音乐/{url_name}.mp3', 'wb') as fp:
            fp.write(response_music.content)
            print(f'{url_name}===>下载成功')
    except:
        print('============错误================')

效果如下

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值