DrissionPage爬取音乐
时间: 2025-01-03 20:37:39 浏览: 7
### 使用DrissionPage爬取音乐网站数据
#### SessionPage方式实现网易云音乐热歌榜数据抓取
为了利用`SessionPage`来获取网易云音乐热歌榜的信息,可以按照如下方法构建Python脚本。此过程涉及创建一个基于HTTP请求的页面对象,并通过解析返回的内容提取所需的数据。
```python
from drissionpage import SessionPage, ChromiumOptions
options = ChromiumOptions()
session_page = SessionPage(options=options)
url = 'https://music.163.com/discover/toplist?id=3779629' # 网易云音乐热歌榜URL
response = session_page.get(url)
html_content = response.text
# 解析HTML内容并定位到榜单歌曲列表部分
import re
pattern = r'<ul class="f-hide">(.*?)</ul>'
match_result = re.findall(pattern, html_content, flags=re.S)[0]
song_ids = []
for line in match_result.split('\n'):
if '<li>' in line:
song_id_match = re.search(r'data-res-id="(.*?)"', line.strip())
if song_id_match is not None:
song_ids.append(song_id_match.group(1))
print(f"共找到{len(song_ids)}首歌曲")
```
上述代码展示了如何使用`SessionPage`发起GET请求访问目标网址,并运用正则表达式匹配出包含每首歌ID在内的标签信息[^1]。
请注意,在实际开发过程中还需要考虑异常处理机制以及遵循各站点的服务条款与robots协议规定。
阅读全文