批量爬取网易云音乐并下载的代码
时间: 2023-12-30 07:03:28 浏览: 104
以下是一个简单的示例代码,可以批量爬取网易云音乐并下载:
```python
import requests
from bs4 import BeautifulSoup
import os
# 设置请求头,模拟浏览器访问
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'}
# 要爬取的音乐列表 URL
url = 'https://music.163.com/playlist?id=xxxxxx'
# 发送请求,获取响应
response = requests.get(url, headers=headers)
html = response.text
# 解析 HTML 页面
soup = BeautifulSoup(html, 'html.parser')
music_list = soup.find('ul', {'class': 'f-hide'}).find_all('a')
# 循环爬取所有音乐
for music in music_list:
music_id = music['href'].split('=')[1]
music_url = 'http://music.163.com/song/media/outer/url?id=' + music_id + '.mp3'
music_name = music.text + '.mp3'
print('正在下载:', music_name)
# 下载音乐文件
response = requests.get(music_url)
with open(music_name, 'wb') as f:
f.write(response.content)
```
其中,`xxxxxx` 是要爬取的歌单 ID,`music_list` 就是该歌单中所有音乐的列表。循环遍历该列表,获取每个音乐的 ID 和名称,然后拼接出音乐文件的 URL,使用 `requests` 库下载该音乐文件,并保存到本地。保存路径默认为当前脚本所在的目录下。
需要注意的是,这个示例只是演示了如何批量下载网易云音乐的 MP3 文件,实际应用中还需要注意版权问题,并遵守相关法律法规。
阅读全文