首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【python爬虫案例】利用python爬虫爬取豆瓣音乐TOP250的数据!

【python爬虫案例】利用python爬虫爬取豆瓣音乐TOP250的数据!

作者头像
马哥python说
发布2025-07-14 19:31:52
发布2025-07-14 19:31:52
11200
代码可运行
举报
文章被收录于专栏:Python爬虫Python爬虫
运行总次数:0
代码可运行

一、爬虫对象-豆瓣音乐TOP250

前几天,我分享了一个python爬虫案例,爬取豆瓣电影TOP250数据:

【python爬虫案例】利用python爬虫爬取豆瓣电影TOP250的数据!

今天,我再分享一期,python爬取豆瓣音乐TOP250数据!

爬虫大体流程和豆瓣电影TOP250类似,细节之处见逻辑。

首先,打开豆瓣音乐TOP250的页面:

https://music.douban.com/top250

开发好python爬虫代码后,爬取成功后的csv数据,如下:

代码是怎样实现的爬取呢?下面逐一讲解python核心代码。

二、python爬虫代码讲解

首先,导入需要用到的库:

代码语言:javascript
代码运行次数:0
运行
复制
import requests  # 发送请求
from bs4 import BeautifulSoup  # 解析网页
import pandas as pd  # 存取csv
from time import sleep  # 等待时间

然后,向豆瓣音乐网页发送请求:

代码语言:javascript
代码运行次数:0
运行
复制
res = requests.get(url, headers=headers)

利用BeautifulSoup库解析响应页面:

代码语言:javascript
代码运行次数:0
运行
复制
soup = BeautifulSoup(res.text, 'html.parser')

用BeautifulSoup的select函数,(css解析方法)编写代码逻辑,部分核心代码:

代码语言:javascript
代码运行次数:0
运行
复制
name = music.select('.pl2 a')[0].text.replace('\n', '').replace('                ', ' ').strip()  # 专辑名称
music_name.append(name)
url = music.select('.pl2 a')[0]['href']  # 专辑链接
music_url.append(url)
star = music.select('.rating_nums')[0].text  # 音乐评分
music_star.append(star)
star_people = music.select('.pl')[1].text  # 评分人数
star_people = star_people.strip().replace(' ', '').replace('人评价', '').replace('(\n', '').replace('\n)',
                                                                                                 '')  # 数据清洗
music_star_people.append(star_people)
music_infos = music.select('.pl')[0].text.strip()  # 歌手、发行日期、类型、介质、曲风

最后,将爬取到的数据保存到csv文件中:

代码语言:javascript
代码运行次数:0
运行
复制
def save_to_csv(csv_name):
  """
  数据保存到csv
  :return: None
  """
  df = pd.DataFrame()  # 初始化一个DataFrame对象
  df['专辑名称'] = music_name
  df['专辑链接'] = music_url
  df['专辑评分'] = music_star
  df['评分人数'] = music_star_people
  df['歌手'] = music_singer
  df['发行日期'] = music_pub_date
  df['类型'] = music_type
  df['介质'] = music_media
  df['曲风'] = music_style
  df.to_csv(csv_name, encoding='utf_8_sig')  # 将数据保存到csv文件

其中,把各个list赋值为DataFrame的各个列,就把list数据转换为了DataFrame数据,然后直接to_csv保存。

这样,爬取的数据就持久化保存下来了。

需要说明的是,豆瓣页面上第4、5、6页只有24首(不是25首),所以总数量是247,不是250。 不是爬虫代码有问题,是豆瓣页面上就只有247条数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老男孩的平凡之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、爬虫对象-豆瓣音乐TOP250
  • 二、python爬虫代码讲解
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档