python提取网易云歌单的应用

本文展示了如何使用Python的requests和BeautifulSoup库爬取网易云音乐的歌单,包括歌单中的歌曲名称、歌曲ID以及歌曲的艺术家信息。
部署运行你感兴趣的模型镜像
代码 
import requests
from bs4 import BeautifulSoup

# 设置请求头,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

# 歌单ID
playlist_id = '689203961'

# 构造歌单页面的URL
url = 'https://music.163.com/playlist?id=' + playlist_id

# 发送GET请求获取网页内容
response = requests.get(url, headers=headers)
html = response.text

# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(html, 'html.parser')

# 提取歌单中的歌曲
song_list = soup.find('ul', {'class': 'f-hide'}).find_all('a')
for song in song_list:
    # 获取歌曲名称
    song_name = song.text

    # 获取歌曲ID
    song_id = song['href'].split('=')[-1]

    # 构造歌曲详情页面的URL
    song_url = 'https://music.163.com/song?id=' + song_id

    # 发送GET请求获取歌曲详情页面的内容
    song_response = requests.get(song_url, headers=headers)
    song_html = song_response.text

    # 使用BeautifulSoup解析歌曲详情页面的内容
    song_soup = BeautifulSoup(song_html, 'html.parser')

    # 提取歌曲的歌手
    song_artist = song_soup.find('p', {'class': 'des s-fc4'}).find('span')['title']

    # 打印歌曲的信息
    print('歌曲名称:', song_name)
    print('歌手:', song_artist)
 结果

 

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 使用Python爬虫获取网易云音乐歌单飙升榜的歌曲名称 为了实现这一功能,可以采用`requests`库发起HTTP请求,并利用`BeautifulSoup`库解析HTML文档。具体来说: 对于网络请求部分,构建了一个URL指向网易云音乐的飙升榜页面[^5]。随后设置合适的headers模仿浏览器的行为以避免被服务器识别为自动化脚本而阻止访问。 在接收到服务器响应后,使用正则表达式或者更推荐的方式——借助于`BeautifulSoup`对返回的数据进行分析提取所需的信息。例如,在网页源码里查找包含有歌曲详情的标签结构,通常每歌会有一个唯一的ID以及对应的标题等属性[^4]。 下面是一份简单的代码片段用于说明如何操作: ```python import requests from bs4 import BeautifulSoup # 设置目标网址和头部信息 url = 'https://music.163.com/discover/toplist?id=3779622' headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } response = requests.get(url=url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text,'html.parser') # 查找所有的<li>元素下的<a>标签,其中包含了歌曲的名字和其他元数据 song_list = [] for item in soup.select('li .txt a'): title=item['title'] song_list.append(title) print(song_list) ``` 这段代码实现了向指定地址发送GET请求并接收回应内容的功能,接着运用`BeautifulSoup`对象`soup`定位至含有歌曲条目的位置,最后遍历这些节点收集各曲目全名存入列表中以便后续处理或展示[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌暴龙兽z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值