python-网易云音乐搜索下载脚本

本文介绍了一个使用Python编写的网易云音乐搜索和下载脚本。通过selenium库来处理页面中的iframe,获取歌曲名、歌手和歌曲ID。使用requests库下载音乐并以歌曲ID为文件名保存到本地。文章还分享了代码实现细节和实际运行效果。
摘要由CSDN通过智能技术生成

前言

之前写过如何从网易云网页下载歌曲,但是感觉太麻烦了,于是就想着写一个脚本来完成搜索加下载的功能。

开发环境及所需的库

开发环境

Windows 10
python 3.7

所需的库

requests
re
time
selenium
prettytable

思想

搜索

使用爬虫,访问https://music.163.com/#/search/m/?s=音乐名&type=1,来的到歌曲列表、歌手以及歌曲ID(下载音乐时需要)

下载

网易云网页播放音乐时会调用链接http://music.163.com/song/media/outer/url?id=音乐ID.mp3,来获取音乐,所以我们才需要音乐ID

保存

直接将爬取到的mp3保存到文件就行了

实现

调用库

from selenium.webdriver.firefox.options import Options
import requests
import re
from selenium import webdriver
from time import sleep
from prettytable import PrettyTable

搜索

本来我想用requests库来实现歌曲列表的爬取,但是,由于页面中嵌套着一个iframe,导致无法得到(也可能是我太菜了)。所以使用selenium来实现。

我使用的是火狐,先配置selenium,不显示gui

# 设置options
firefox_options = Options()
firefox_options.add_argument("--headless")
firefox_options.add_argument("--disable-gpu")

搜索音乐的函数:

# 搜索音乐
def SearchMusic(name):
	url_search = "https://music.163.com/#/search/m/?s="+name+"&type=1"
	# 初始化
	browser = webdriver.Firefox(executable_path="geckodriver.exe", options=firefox_options)
	# 歌曲搜索
	browser.get(url=url_search)
	# 切换iframe
	browser.switch_to.frame("g_iframe")
	sleep(0.5)
	# 页面信息
	page_text = browser.execute_script("return document.documentElement.outerHTML")
	# 退出
	browser.quit()
	# 正则表达式
	re1 = '<a.*?id="([0-9]*?)"'
	re2 = '<b title="(.*?)">.*?<span class="s-fc7">
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值