Python爬虫下载网易云音乐歌曲

该博客介绍了一个Python爬虫程序,用于从网易云音乐搜索并下载指定歌曲。用户输入歌名,爬虫通过Selenium模拟浏览器访问并切换到iframe框架,查找歌曲ID,然后利用requests库下载MP3文件到本地的'musicLibs'文件夹。整个过程涉及到了网页解析、正则表达式、文件操作等技术。
摘要由CSDN通过智能技术生成

Python爬虫下载网易云音乐歌曲

使用爬虫的流程:
(1) 输入想要下载的歌曲歌名
(2) 在歌曲列表中找到要下载的歌曲
(3) 输入对应歌曲ID
(4) 成功下载到本地

打印出来的列表在这里插入图片描述
最后那栏数字就是歌曲ID

#课程设计
#导入requests包
import requests
#创建存放歌曲的文件夹,若没有则创建
import os
if not os.path.exists('./musicLibs'):
    os.mkdir('./musicLibs')
import re
from selenium import webdriver
#selenium无可视化界面设置
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#进行UA伪装,防止网站发现这是一个爬虫程序不予访问
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'
}
vip = input('请输入歌名:')
url_1 = 'https://music.163.com/#/search/m/?s=' + vip + '&type=1'
#初始化浏览器对象
browser = webdriver.Chrome(executable_path='chromedriver.exe',options=chrome_options)
#访问该url
browser.get(url=url_1)
#由于网页中有iframe框架,进行切换。不转换无法检索嵌套里的网页
browser.switch_to.frame('g_iframe')
#抓取到页面信息
page_text = browser.execute_script("return document.documentElement.outerHTML")
#退出浏览器
browser.quit()
#利用正则re找到歌手,歌曲ID信息并打印出来
ex1 = '<a.*?id="([0-9]*?)"'
ex2 = '<b.*?title="(.*?)"><span class="s-fc7">'
ex3 = 'class="td w1"><div.*?class="text"><a.*?href=".*?">(.*?)</a></div></div>'
id_list = re.findall(ex1,page_text,re.M)[::2]
song_list = re.findall(ex2,page_text,re.M)
singer_list = re.findall(ex3,page_text,re.M)
li = list(zip(song_list,singer_list,id_list))
for i in range(len(li)):
    print(str(i+1) + '.' + str(li[i]),end='\n')
#指定url
ID=input("请输入歌曲ID:")
url_2 = 'http://music.163.com/song/media/outer/url?id=' + ID + '.mp3'
#调用requests.get方法对url进行访问
audio_content = requests.get(url=url_2,headers=headers).content
# 存入本地
name='./musicLibs'+'/'+vip+'.mp3'
with open(name,'wb') as f :
    f.write(audio_content)
print("拿下!")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值