用Python爬取网易云的MP3
时间: 2023-11-05 11:04:03 浏览: 35
为了爬取网易云的MP3,我们需要使用Python中的requests和beautifulsoup4库。下面是一个简单的Python脚本,可以帮助你爬取网易云的MP3。
```python
import requests
from bs4 import BeautifulSoup
# 设置请求头
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 = 'https://music.163.com/playlist?id=484025624'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析页面,获取每首歌曲的ID
song_ids = []
for song in soup.find_all('a', class_='u-btni u-btni-play f-fr'):
song_id = str(song).split('data-res-action="play" data-res-id="')[1].split('"')[0]
song_ids.append(song_id)
# 根据ID获取每首歌曲的MP3链接
for song_id in song_ids:
url = 'http://music.163.com/song/media/outer/url?id=' + song_id + '.mp3'
response = requests.get(url, headers=headers)
with open(song_id + '.mp3', 'wb') as f:
f.write(response.content)
print('成功下载歌曲:' + song_id)
```
这个脚本首先使用requests库获取歌曲列表页面的内容,然后使用beautifulsoup4库解析页面,从页面中获取每首歌曲的ID。接下来,它根据每首歌曲的ID构造MP3链接,使用requests库下载每首歌曲的MP3文件,并将其保存在本地。最后,它将成功下载的歌曲ID打印出来。