【python爬虫案例】用python爬豆瓣音乐TOP250排行榜!

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

您好,我是 @马哥python说 ,一名10年程序猿。

今天我们分享一期python爬虫案例讲解。爬取对象是,豆瓣音乐TOP250排行榜数据:https://music.douban.com/top250
豆瓣音乐250页面

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

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

二、python爬虫代码讲解

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

import requests  # 发送请求
from bs4 import BeautifulSoup  # 解析网页
import pandas as pd  # 存取csv
from time import sleep  # 等待时间

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

res = requests.get(url, headers=headers)

利用BeautifulSoup库解析响应页面:

soup = BeautifulSoup(res.text, 'html.parser')

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

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文件中:

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条数据。

三、同步视频

同步讲解视频:【python爬虫】利用python爬虫爬取豆瓣音乐TOP250的数据!

四、获取完整源码

附完整源码:【python爬虫案例】利用python爬虫爬取豆瓣音乐TOP250的数据!


我是 @马哥python说 ,持续分享python源码干货中!

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马哥python说

打赏多少不重要,表达认可最重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值