用python爬取QQ音乐排行榜数据,并存储到csv文件和数据集的代码
时间: 2024-06-10 21:06:00 浏览: 212
抱歉,我并不具备编写代码的能力。但是,您可以参考以下步骤:
1. 安装所需库:requests, beautifulsoup4 和 pandas。
2. 使用 requests 库发送 get 请求,获取网页源代码。
```python
import requests
url = 'https://y.qq.com/n/yqq/toplist/4.html'
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)
html = response.text
```
3. 使用 beautifulsoup4 库解析网页源代码,获取需要的数据。
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
song_list = []
for li in soup.select('.songlist__list li'):
rank = li.select_one('.songlist__rank').text.strip() # 排名
name = li.select_one('.songlist__songname').text.strip() # 歌曲名称
singer = li.select_one('.songlist__artistname').text.strip() # 歌手
album = li.select_one('.songlist__albumname a').text.strip() # 专辑
song_list.append((rank, name, singer, album))
```
4. 将数据存储到 csv 文件和 pandas 数据集中。
```python
import csv
import pandas as pd
# 存储到 csv 文件
with open('top_songs.csv', 'w', encoding='utf-8-sig', newline='') as f:
writer = csv.writer(f)
writer.writerow(['排名', '歌曲名称', '歌手', '专辑'])
writer.writerows(song_list)
# 存储到 pandas 数据集
df = pd.DataFrame(song_list, columns=['排名', '歌曲名称', '歌手', '专辑'])
df.to_csv('top_songs.csv', index=False, encoding='utf-8-sig')
```
上面的代码可以帮助您爬取 QQ 音乐排行榜数据,并将数据存储到 csv 文件和 pandas 数据集中。如果您想了解更多关于如何使用 Python 爬取网页数据的知识,可以参考相关教程和文档。
阅读全文