打开网易云音乐热歌榜https://music.163.com/discover/toplist?id=3778678或其他榜单,获取网页代码,解析网页获取歌曲id和名称,时长和歌手,输出并保存到music.csv文件
时间: 2024-02-04 11:01:50 浏览: 47
好的,这是一个比较复杂的任务,需要用到 Python 的 Requests、BeautifulSoup 和 Pandas 库。以下是代码实现:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 获取网页代码
url = 'https://music.163.com/discover/toplist?id=3778678'
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'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析网页获取歌曲信息
songs = soup.find('tbody').find_all('tr')
data = []
for song in songs:
rank = song.find('td', class_='num').text.strip()
name = song.find('b', class_='txt').text.strip()
duration = song.find('span', class_='u-dur').text.strip()
artist = song.find('span', class_='s-fc8').text.strip()
data.append([rank, name, duration, artist])
# 输出并保存到CSV文件
df = pd.DataFrame(data, columns=['排名', '歌曲名称', '时长', '歌手'])
df.to_csv('music.csv', index=False, encoding='utf-8-sig')
print(df)
```
这段代码会访问网易云音乐热歌榜的网页,解析网页代码,获取歌曲的排名、名称、时长和歌手,然后将结果输出到控制台并保存到 music.csv 文件中。你可以修改代码中的 URL 地址来获取其他榜单的歌曲信息。