python爬取网易云会员歌曲
时间: 2023-07-21 16:48:38 浏览: 80
网易云音乐会员歌曲是需要登录后才能听取的,因此我们需要先登录网易云音乐,并获取登录后的 Cookies。然后,我们可以使用这个 Cookies 来模拟登录状态,访问会员歌曲页面并获取歌曲信息。
以下是一个简单的示例代码:
```python
import requests
from bs4 import BeautifulSoup
# 登录网易云音乐,获取 Cookies
session = requests.Session()
login_url = 'https://music.163.com/weapi/login/cellphone'
payload = {
'phone': '你的手机号',
'password': '你的密码',
'rememberLogin': 'true'
}
response = session.post(login_url, data=payload)
# 伪装成浏览器进行访问
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',
'Referer': 'https://music.163.com/',
'Cookie': '; '.join([f'{key}={value}' for key, value in session.cookies.get_dict().items()])
}
# 获取会员歌曲页面的 HTML 代码
url = 'https://music.163.com/#/my/m/music/privilege'
response = requests.get(url, headers=headers)
html = response.text
# 解析 HTML 代码
soup = BeautifulSoup(html, 'html.parser')
# 获取包含歌曲信息的 div 标签
song_list = soup.find('div', {'class': 'm-table-privilege'}).find_all('tr')
# 遍历每个 tr 标签,获取歌曲信息
for song in song_list[1:]: # 第一行是表头,跳过不处理
# 歌曲名称
name = song.find('b', {'class': 'f-fs1'}).text
# 歌手
artist = song.find('span', {'class': 's-fc7'}).text
# 专辑
album = song.find('span', {'class': 's-fc7'}).find_next_sibling('span').text
print(f'{name} - {artist} - {album}')
```
以上代码中,我们使用了 requests 库进行登录,并通过 session 对象保存了 Cookies。然后,我们设置了请求头,使用 Cookie 来模拟登录状态。接着,我们访问了会员歌曲页面,并使用 BeautifulSoup 库解析了页面。最后,我们遍历每个 tr 标签,获取歌曲名称、歌手和专辑,并打印出来。
需要注意的是,网易云音乐的反爬虫机制比较严格,因此我们需要设置一些请求头来伪装成浏览器进行访问,并且不能频繁地进行请求。同时,由于网页是通过 JavaScript 渲染的,因此我们需要使用 Selenium 或者其他的工具来模拟浏览器行为。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)