以下是一个示例代码,使用 Python 的 requests 库和 BeautifulSoup 库来爬取网易云音乐的歌曲数据:
import requests
from bs4 import BeautifulSoup
# 定义要爬取的网页地址
url = 'https://music.163.com/discover/toplist?id=3779629'
# 发送 HTTP 请求
response = requests.get(url)
# 使用 BeautifulSoup 解析 HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 找到包含歌曲信息的 HTML 元素,这里是一个 class 为 'm-table' 的表格元素
table = soup.find('table', {'class': 'm-table'})
# 找到所有的歌曲行
song_rows = table.find_all('tr')
# 遍历歌曲行,提取歌曲信息
for song_row in song_rows:
# 找到歌曲名和歌手名所在的列
cols = song_row.find_all('td', {'class': 'song-name'})
# 如果找到了歌曲名和歌手名所在的列
if len(cols) > 1:
# 提取歌曲名和歌手名
song_name = cols[0].text.strip()
artist_name = cols[1].text.strip()
# 输出歌曲信息
print('歌曲名:', song_name)
print('歌手名:', artist_name)
print('---')
在上面的代码中,我们首先定义了要爬取的网页地址。然后,使用 requests 库发送 HTTP 请求来获取网页的 HTML 内容。接下来,使用 BeautifulSoup 解析 HTML 内容,并根据 HTML 结构找到包含歌曲信息的 HTML 元素。最后,遍历歌曲行,逐行提取歌曲名和歌手名,并输出。
请注意,以上代码仅为示例,实际爬取的网页可能有不同的 HTML 结构和样式,你需要根据实际情况进行相应的修改和调整。另外,爬取网页时需要遵守网站的使用规则,并尊重网站的隐私和版权。