Python爬取网易云音乐数据做数据集
时间: 2024-04-12 17:21:13 浏览: 158
首先,需要安装requests、beautifulsoup4、pandas、numpy等库。
然后,可以通过以下步骤爬取网易云音乐数据:
1. 访问网易云音乐的歌单页面,如:https://music.163.com/#/playlist?id=12345678
2. 使用requests库获取页面内容。
3. 使用beautifulsoup4库解析页面内容,获取歌单中的歌曲名称、歌手、专辑、时长等信息。
4. 将获取到的数据存储到pandas的DataFrame中,并进行数据清洗和处理。
5. 最后,将处理好的数据集保存为csv文件。
以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
# 歌单链接
url = 'https://music.163.com/#/playlist?id=12345678'
# 请求头
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.36'}
# 发送请求
response = requests.get(url, headers=headers)
# 解析数据
soup = BeautifulSoup(response.text, 'lxml')
songs = soup.select('.m-table tbody tr')
# 提取数据
data = []
for song in songs:
name = song.select('b a')[0].text.strip() # 歌曲名称
singer = song.select('.text a')[0].text.strip() # 歌手
album = song.select('.text a')[1].text.strip() # 专辑
duration = song.select('.u-dur')[0].text.strip() # 时长
data.append([name, singer, album, duration])
# 创建DataFrame并保存数据
df = pd.DataFrame(data, columns=['name', 'singer', 'album', 'duration'])
df.to_csv('songs.csv', index=False)
```
阅读全文