Python 网易云音乐歌单数据爬取和Excel导出
Python 网易云音乐歌单数据爬取和Excel导出
本教程将教你使用 Python 代码爬取网易云音乐歌单数据,并将其保存到 Excel 表格中。我们将使用 requests、BeautifulSoup 和 openpyxl 库来完成此任务。
1. 导入必要的库
首先,我们需要导入以下库:
import requests
from bs4 import BeautifulSoup
import openpyxl
2. 获取歌单 ID
你需要先找到你想要爬取的歌单的 ID。你可以通过以下步骤找到:
- 打开网易云音乐网站,并找到你想要爬取的歌单。
- 复制歌单链接,例如:
https://music.163.com/#/playlist?id=2193993710。 - 歌单 ID 是链接中
id=后面的数字,在本例中为2193993710。
3. 获取歌单数据
使用 requests 库向网易云音乐的 API 接口发送请求,获取歌单数据:
url = 'https://music.163.com/api/playlist/detail?id=2193993710'
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'
}
response = requests.get(url, headers=headers)
4. 解析歌单数据
使用 BeautifulSoup 库解析 HTML 页面,获取歌曲的详细信息:
soup = BeautifulSoup(response.text, 'lxml')
songs = soup.find_all('ul', {'class': 'f-hide'})[0].find_all('a')
5. 保存数据到 Excel 表格
使用 openpyxl 库将歌曲信息保存到 Excel 表格中:
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = '歌单'
for i, song in enumerate(songs):
sheet.cell(row=i+1, column=1, value=song.text)
wb.save('歌单.xlsx')
6. 完整代码
import requests
from bs4 import BeautifulSoup
import openpyxl
url = 'https://music.163.com/api/playlist/detail?id=2193993710'
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'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
songs = soup.find_all('ul', {'class': 'f-hide'})[0].find_all('a')
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = '歌单'
for i, song in enumerate(songs):
sheet.cell(row=i+1, column=1, value=song.text)
wb.save('歌单.xlsx')
注意:
- 请将代码中的歌单 ID 替换为你要爬取的歌单的 ID。
- 为了避免被网易云音乐封禁,请不要频繁地发送请求。
- 可以根据需要修改代码,例如,将歌曲信息保存到其他格式的文件中。
- 爬取网站数据时,请尊重网站的 robots.txt 协议。
原文地址: https://www.cveoy.top/t/topic/f1dC 著作权归作者所有。请勿转载和采集!