Python 网易云音乐歌单数据爬取和Excel导出

本教程将教你使用 Python 代码爬取网易云音乐歌单数据,并将其保存到 Excel 表格中。我们将使用 requestsBeautifulSoupopenpyxl 库来完成此任务。

1. 导入必要的库

首先,我们需要导入以下库:

import requests
from bs4 import BeautifulSoup
import openpyxl

2. 获取歌单 ID

你需要先找到你想要爬取的歌单的 ID。你可以通过以下步骤找到:

  1. 打开网易云音乐网站,并找到你想要爬取的歌单。
  2. 复制歌单链接,例如:https://music.163.com/#/playlist?id=2193993710
  3. 歌单 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 协议。
Python 网易云音乐歌单数据爬取和Excel导出

原文地址: https://www.cveoy.top/t/topic/f1dC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录