python爬取qq音乐并保存
时间: 2023-10-13 11:07:48 浏览: 109
首先,我们需要安装 requests 和 BeautifulSoup 库来爬取和解析网页数据。接下来,我们可以使用 requests 库发送 HTTP 请求获取 HTML 页面,使用BeautifulSoup 库解析页面并找到我们要爬取的信息,最后将信息保存到文件中。
具体的代码如下所示:
```
import requests
from bs4 import BeautifulSoup
headers = {
'Accept': '*/*',
'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'
}
def download_songs(url):
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
song_list = soup.find_all('div', class_='songlist__songname')
for song in song_list:
song_name = song.get('title')
song_url = 'https://y.qq.com' + song.a['href']
song_response = requests.get(song_url, headers=headers)
song_soup = BeautifulSoup(song_response.text, 'html.parser')
song_real_url = song_soup.find_all('audio')[0].source['src']
r = requests.get(song_real_url, stream=True)
with open(song_name+'.mp3', 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
f.flush()
print('Done!')
if __name__ == '__main__':
url = 'https://y.qq.com/n/yqq/playsquare/4357505811.html#stat=y_new.playlist.dissname'
download_songs(url)
```
其中,我们首先声明了一个请求头,发送 HTTP 请求时进行设置。在下载歌曲时,我们发送了两次 HTTP 请求,第一次请求获取到歌单页面,第二次请求获取含有歌曲链接的页面。最后将歌曲链接保存到文件中。
阅读全文