用pycharm爬取网址中的https://music.douban.com/top250“专辑名称 专辑链接 专辑评分 评分人数 歌手 发行日期 类型 介质 曲风”并用pycharm保存在数据库中(所有页面)
时间: 2025-02-05 07:14:53 浏览: 46
要使用PyCharm爬取豆瓣音乐Top250并将数据保存到数据库中,你可以按照以下步骤进行:
1. **安装必要的库**:
- `requests`:用于发送HTTP请求。
- `BeautifulSoup`:用于解析HTML内容。
- `sqlite3`:用于操作SQLite数据库。
- `pandas`:用于数据处理(可选)。
你可以使用以下命令安装这些库:
```bash
pip install requests beautifulsoup4 pandas
```
2. **编写爬虫代码**:
```python
import requests
from bs4 import BeautifulSoup
import sqlite3
import time
# 连接数据库
conn = sqlite3.connect('douban_music.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS music (
id INTEGER PRIMARY KEY AUTOINCREMENT,
album_name TEXT,
album_link TEXT,
album_rating TEXT,
rating_count TEXT,
singer TEXT,
release_date TEXT,
type TEXT,
medium TEXT,
style TEXT
)
''')
# 爬取所有页面的数据
for page in range(10): # 豆瓣Top250分为10页,每页25条数据
url = f'https://music.douban.com/top250?start={page * 25}'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 找到所有专辑的条目
albums = soup.find_all('div', class_='item')
for album in albums:
album_name = album.find('div', class_='hd').find('a').find('span').text.strip()
album_link = album.find('div', class_='hd').find('a')['href']
album_rating = album.find('span', class_='rating_nums').text.strip()
rating_count = album.find('div', class_='star').find_all('span')[-1].text.strip()
info = album.find('div', class_='bd').find('p').text.strip().split('\n')
singer = info[0].split('/')[0].strip()
release_date = info[0].split('/')[1].strip()
type_medium = info[0].split('/')[2].strip().split(' ')
type = type_medium[0]
medium = type_medium[1]
style = info[1].strip()
# 插入数据到数据库
cursor.execute('''
INSERT INTO music (album_name, album_link, album_rating, rating_count, singer, release_date, type, medium, style)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
''', (album_name, album_link, album_rating, rating_count, singer, release_date, type, medium, style))
# 等待一段时间,避免被封IP
time.sleep(1)
# 提交事务并关闭连接
conn.commit()
conn.close()
```
3. **运行代码**:
在PyCharm中运行上述代码,程序将爬取豆瓣音乐Top250的所有页面,并将数据保存到本地的SQLite数据库`douban_music.db`中。
阅读全文
相关推荐

















