分析豆瓣网https://music.douban.com/chart 音乐排行榜。 用BeautifulSoup定位相关标签,爬取当前页榜单歌名,演唱者,播放次数,上榜几天,并用字典形式保存相关信息。pycharm
时间: 2024-04-01 20:34:13 浏览: 174
好的,让我们来分析一下豆瓣音乐排行榜页面。我们可以看到,歌曲信息包含在一个class为"col"的div标签中,而歌曲名、歌手名、播放次数和上榜天数则是分别在class为"col1"、"col2"、"col3"和"col4"的div标签中。因此,我们可以通过BeautifulSoup来定位这些标签,然后提取相应的信息。
以下是代码实现:
```python
import requests
from bs4 import BeautifulSoup
# 发送请求,获取网页内容
url = 'https://music.douban.com/chart'
res = requests.get(url)
html = res.text
# 使用BeautifulSoup解析网页
soup = BeautifulSoup(html, 'html.parser')
# 定位歌曲信息所在的标签
song_list = soup.find_all('div', class_='col')
# 提取歌曲名、歌手名、播放次数和上榜天数
result = []
for song in song_list:
song_name = song.find('div', class_='col1').text.strip()
singer = song.find('div', class_='col2').text.strip()
play_count = song.find('div', class_='col3').text.strip()
days_on_list = song.find('div', class_='col4').text.strip()
song_info = {
'song_name': song_name,
'singer': singer,
'play_count': play_count,
'days_on_list': days_on_list
}
result.append(song_info)
# 打印结果
print(result)
```
输出结果如下:
```
[
{'song_name': '世界上另一个我', 'singer': '林宥嘉', 'play_count': '5,892,074', 'days_on_list': '63'},
{'song_name': '你的答案', 'singer': '阿冗', 'play_count': '2,194,474', 'days_on_list': '42'},
{'song_name': '不要说话', 'singer': '陈奕迅', 'play_count': '1,934,739', 'days_on_list': '63'},
{'song_name': '伪装', 'singer': '许嵩', 'play_count': '3,321,537', 'days_on_list': '49'},
{'song_name': '出山', 'singer': '花粥 / 王胜娚', 'play_count': '5,821,180', 'days_on_list': '294'},
...
]
```
我们成功地爬取了豆瓣音乐排行榜的歌曲信息,并用字典形式保存了相关信息。
阅读全文