用MYSQL爬取网易云热歌排行榜top200包括歌手
时间: 2024-06-08 21:06:56 浏览: 197
一个获取网易云音乐歌手、专辑、歌曲、评论、歌词等数据的Python爬虫.zip
5星 · 资源好评率100%
要爬取网易云热歌排行榜top200包括歌手,可以通过以下步骤来实现:
1. 打开网易云热歌排行榜页面(https://music.163.com/#/discover/toplist?id=3779629),并将其源代码保存到本地文件中。
2. 创建一个MySQL数据库,用于存储爬取到的数据。可以使用以下命令在MySQL中创建名为“music”的数据库:
```sql
CREATE DATABASE music;
```
3. 在“music”数据库中创建名为“songs”的数据表,用于存储歌曲信息。可以使用以下命令创建该数据表:
```sql
CREATE TABLE songs (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
artist VARCHAR(255),
rank INT,
url VARCHAR(255)
);
```
4. 使用Python编写爬虫程序,从保存的源代码文件中提取出歌曲信息,并将其存储到MySQL数据库中。以下是一个示例程序:
```python
import requests
from bs4 import BeautifulSoup
import pymysql
# 连接MySQL数据库
db = pymysql.connect(host='localhost', user='root', password='', database='music')
cursor = db.cursor()
# 网易云热歌排行榜页面的URL
url = 'https://music.163.com/discover/toplist?id=3779629'
# 发送HTTP请求,获取页面内容
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取歌曲信息
songs = soup.select('.f-hide li a')
for i, song in enumerate(songs):
name = song.text
url = 'https://music.163.com' + song['href']
# 发送HTTP请求,获取歌曲页面内容
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取歌手信息
artist = soup.select('.singer')[0].text.strip()
# 将歌曲信息存储到MySQL数据库中
cursor.execute('INSERT INTO songs (name, artist, rank, url) VALUES (%s, %s, %s, %s)',
(name, artist, i + 1, url))
# 提交事务并关闭连接
db.commit()
cursor.close()
db.close()
```
运行以上程序后,MySQL数据库中就会存储网易云热歌排行榜top200的歌曲信息,包括歌曲名称、歌手名称、排名和歌曲链接。
阅读全文