本博客将会对B站番剧排行榜的数据进行信息爬取以及数据可视化分析,适应最新的B站网页结构
参考大佬:https://blog.csdn.net/Jacompol/article/details/111692298

网页结构:

直接上代码,代码注释有步骤解释!

import requests
from bs4 import BeautifulSoup
import re
import pandas
import matplotlib.pyplot as plt
import matplotlib.font_manager
# 1、获取网页内容
def get_html(url):try:request = requests.get(url)             # 使用get来获取网页数据request.raise_for_status()              # 如果返回参数不为200,抛出异常request.encoding = request.apparent_encoding  # 获取网页编码方式return request.text                     # 返回获取的内容except:return '错误'#2、信息解析存储
def save(html):soup = BeautifulSoup(html,'html.parser')# 定义好相关列表准备存储相关信息name = []  # 动漫名字play= []  # 播放量favorite= []  # 收藏数#动漫名字存储for tag in soup.find_all('div', class_='info'):# print(tag)bf = tag.a.stringname.append(str(bf))print(name)#播放量存储for tag in soup.find_all('div', class_='detail-state'):# print(tag)bf = tag.find('span', class_='data-box').get_text()# 统一单位为‘万’if '亿' in bf:num = float(re.search(r'\d(.\d)?', bf).group()) * 10000# print(num)bf = numelse:bf = re.search(r'\d*(\.)?\d', bf).group()play.append(float(bf))print(play)#收藏数for tag in soup.find_all('div', class_='detail-state'):sc = tag.find('span', class_='data-box').next_sibling.next_sibling.get_text()sc = re.search(r'\d*(\.)?\d', sc).group()favorite.append(float(sc))print(favorite)# 存储至excel表格中info = {'动漫名': name, '播放量(万)': play, '收藏数(万)': favorite}dm_file = pandas.DataFrame(info)dm_file.to_excel('Data.xlsx', sheet_name="动漫数据分析")# 将所有列表返回return name, play, favorite
#3、数据可视化分析
def view(info):#取出列表数据dm_name = info[0]  # 番剧名dm_play = info[1]  # 番剧播放量dm_favorite = info[2]  # 番剧收藏数#使图上的数据可以显示中文plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = False#播放量柱形图,收藏数折线图fig, ax1 = plt.subplots()plt.bar(dm_name, dm_play, color='red')  #设置柱状图plt.title('番剧播放量与收藏数的数据分析')  # 表标题ax1.tick_params(labelsize=6)plt.xlabel('番剧名')  # 横轴名plt.ylabel('播放量')  # 纵轴名plt.xticks(rotation=90, color='#7b68ee')  # 设置横坐标变量名旋转度数和颜色#组合图必须加这个ax2 = ax1.twinx()ax2.plot(dm_favorite, color='yellow')  # 设置线粗细,节点样式plt.ylabel('收藏数(万)')plt.plot(1, label='收藏数', color="yellow", linewidth=1.0, linestyle="-")plt.plot(1, label='播放量', color="red", linewidth=5.0)  # 图例plt.legend()plt.show()def main():# 网址url = 'https://www.bilibili.com/v/popular/rank/bangumi'# 获取返回值html = get_html(url)print(html)info = save(html)view(info)
if __name__ == '__main__':main()

success!

Python爬虫以及数据可视化分析(最新B站番剧排行榜数据)相关推荐

  1. Python爬虫以及数据可视化分析之某站热搜排行榜信息爬取分析

    目录 前言 一,确定目标 二,发送请求 三, 解析数据 四, 保存数据 pyecharts进行可视化 "某站"数据排名前10视频类型 "某站"标题标签可视化 & ...

  2. 数据可视化分析案例:探索BRFSS电话调查数据

    原文链接:http://tecdat.cn/?p=9284 加载包 library(tidyr) library(knitr) opts_chunk$set(echo = TRUE, fig.alig ...

  3. python爬虫,2020年《财富》中国500强排行榜数据爬取源码

    一个简单的demo,python爬虫,其实是以前的存货,很久很久没有写爬虫了,渣渣更渣了啊! 爬取财富中文网,2020年<财富>中国500强排行榜相关数据,数据都在网页源码里,结构也比较清 ...

  4. 爬虫练习四:爬取b站番剧字幕

    由于个人经常在空闲时间在b站看些小视频欢乐一下,这次就想到了爬取b站视频的弹幕. 这里就以番剧<我的妹妹不可能那么可爱>第一季为例,抓取这一番剧每一话对应的弹幕. 1. 分析页面 这部番剧 ...

  5. Python爬虫以及数据可视化分析!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 源码文件可以参考Github上传的项目:https://github.com/Lemon-Sheep/Py/tree/maste ...

  6. python爬虫可视化excel_Python爬虫以及数据可视化分析!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 下面,我们开始吧! PS: 作为Python爬虫初学者,如有不正确的地方,望各路大神不吝赐教[抱拳] 本项目将会对B站番剧排行的 ...

  7. Python爬虫以及数据可视化分析

    Python爬虫以及数据可视化分析之Bilibili动漫排行榜信息爬取分析 简书地址:https://www.jianshu.com/u/40ac87350697 简单几步,通过Python对B站番剧 ...

  8. Python爬虫以及数据可视化分析!这才是零基础入门案例!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 下面,我们开始吧! PS: 作为Python爬虫初学者,如有不正确的地方,望各路大神不吝赐教[抱拳] 本项目将会对B站番剧排行的 ...

  9. 基于Python的南京二手房数据可视化分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. 浏览器保存密码后自动填充问题
  2. es存在某个字段的查阅_ElasticSearch系列02:ES基础概念详解
  3. mongodb 监控权限_运维监控产品分析篇
  4. Java基础学习-Path环境变量的配置
  5. 浅析 Go IO 的知识框架
  6. Safari 快捷键
  7. 激战2:逐火之路-概念艺术设计
  8. 白事碰上红事,徐渭应景吟诗
  9. Unity3D水下动物模型大集合
  10. Idea设置字体大小
  11. Iptables-外网地址及端口映射到内网地址及端口
  12. 2016年全国房价会呈什么趋势?
  13. 宁录哨兵机器人_能团灭X战警的哨兵机器人是漫威最强机器人吗?奥创:我不服!...
  14. 汇编基础2:看懂汇编
  15. 公司邮箱如何注册?免费公司邮箱域名如何注册?
  16. C++友元和友元函数
  17. Linux内存占用过高排查过程
  18. 阿里 java 开发手册
  19. golangci-lint 自定义linter核心代码 用于检查错误使用gtime.Time.Format() 例如gtime.Time.Format(“2006-01-02 15:04:05“)
  20. 如何找到一个应用的源代码

热门文章

  1. Java IO 之 FileReader 读取文件打印在控制台(处理汉字乱码bug)
  2. SCSI PRs命令研究总结1 - SCSI标准和架构
  3. Android应用开发的学习
  4. 采用for循环结构遍历系列(squence)
  5. 360快视频回应侵权B站;朱啸虎猛批ICO;加拿大用Model X当警车丨价值早报
  6. 计算机系统结构自考大纲,2013自考《计算机系统结构》课程大纲说明
  7. arcgis 线要素的标注(label)转成CAD文本的技巧
  8. python爬取前程无忧分析一波机械职位信息
  9. 标准C程序设计技能百炼
  10. 中移物联网onenet入门学习笔记2:中移物联的通信格式