Python写一个爬虫代码,爬取网易音乐
时间: 2023-06-04 10:07:30 浏览: 300
以下是一个简单的Python爬虫代码,可以从网易云音乐网站上爬取歌曲的基本信息(包括歌名、歌手和专辑名称):
```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/discover/toplist?id=19723756'
# 发送请求
response = requests.get(url, headers=headers)
# 解析HTML页面
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有的歌曲列表
song_list = soup.find_all('ul', class_='f-hide')[0].find_all('a')
# 遍历歌曲列表,输出歌名、歌手和专辑名称
for song in song_list:
song_name = song.text
song_url = 'https://music.163.com' + song['href']
song_response = requests.get(song_url, headers=headers)
song_soup = BeautifulSoup(song_response.text, 'html.parser')
artist = song_soup.find_all('p', class_='des s-fc4')[0].find_all('span')[0].find_all('a')[0].text
album = song_soup.find_all('p', class_='des s-fc4')[0].find_all('span')[1].find_all('a')[0].text
print('歌曲名称:', song_name)
print('歌手:', artist)
print('专辑名称:', album)
```
在代码中,首先定义了请求头和要爬取的网页链接,然后使用requests库发送HTTP请求,并使用BeautifulSoup库解析返回的HTML页面。接下来,查找HTML页面中所有的歌曲列表,遍历歌曲列表,对于每个歌曲,通过获取其链接,发送新的请求并解析返回的HTML页面,查找并输出歌手和专辑名称。最后,输出结果。
阅读全文