Python爬虫+数据分析+数据可视化实战
- Python爬虫+数据分析+数据可视化实战
- 1. 背景介绍
- 2. 需求目标
- 3. 基于urllib的bangumi和bilibili一键爬虫脚本的编写
- 3.1 bangumi 站分析及爬虫脚本的编写
- 3.1.1 站分析
- 3.1.2 代码实现
- 3.2 bilibili 站分析及爬虫脚本的编写
- 3.2.1 站分析
- 3.2.2 代码实现
- 3.1 bangumi 站分析及爬虫脚本的编写
- 4. 基于pandas的综合数据分析和基于matplotlib的数据可视化
- 4.1 导入依赖库
- 4.2 数据清洗
- 4.2.1 日期型数据处理
- 4.2.2 bilibili评分缺失值处理
- 4.3 基本描述统计
- 4.3.1 bilibili评分
- 4.3.2 bangumi评分
- 4.4 bangumi动画作品数据分析
- 4.4.1 每个动画公司各年度制作了多少动画
- 4.4.2 总的动画制作分布
- 4.4.3 每个动画公司制作的动画部数及平均评分
- 4.4.4 2000-2019年热门动画作品及趋势分析
- 4.5 两站动画匹配与数据库的合并
- 4.5.1 匹配策略
- 4.5.2 查询脚本
- 4.5.3 信息匹配
- 4.5.4 数据库合并
- 4.6 两站评分综合分析
- 4.6.1 相关性分析与散点图
- 4.6.2 气泡图、二维频次直方图与三维柱状图
- 4.6.3 箱线图
- 4.6.4 两 站评分特征及原因推测
- 4.6.5 总结
- 5 结语
1. 背景介绍
哔哩哔哩(www.bilibili.com,英文名称:bilibili,简称B站)现为中国年轻世代高度聚集的文化 区和视频平台,该 站于2009年6月26日创建。
bangumi(bangumi番组计划,bangumi.tv)是专注于ACG领域的 站,是国内专业的动画评分 站。该 站可看作动画作品的数据库,拥有万余部动画作品的详细数据,包括集数、播放时间、监督以及评分、评分人数等信息等可供分析。
2. 需求目标
- 编写一键爬虫脚本获取两个 站的动画作品数据
- 对两 站的数据进行分析,其中对于评分进行相关性分析
- 可视化展示数据
3. 基于urllib的bangumi和bilibili一键爬虫脚本的编写
3.1 bangumi 站分析及爬虫脚本的编写
3.1.1 站分析
首先打开bangumi首页,并登录。登录后刷新页面,并用fiddler抓包,获取请求头:
- 作品原名与类型
- 作品详细信息
- 作品简介
- 作品tags
- 作品评分数据
-
part2
-
part4
获得对应的源代码位置后,便可以用beautifulsoup包对 页html进行解析获取数据了。
目前的问题是如何获取尽量多的作品数据。
根据 页地址,访问某部作品的页面应为(后面的数字称为subject ),所以可以从1开始遍历所有的subject ,这理论上可行,但实际操作中发现了两个问题,一是subject 目前超过20万,全部遍历所需时间太长;二是并不是所有作品都是动画作品,还可能是书籍、音乐、游戏等:
-
例:漫画
所以必须找到其他方法。注意到bangumi作为评分 站具有排行榜功能:
不需通过ajax请求获取某段排行的数据,这对于爬虫是非常友好的。
考虑到能上榜的作品都具有一定人气,并且只有评分人数达到一定数量评分才更有代表性,所以决定按照排行榜爬取这5800多部动画作品subject ,再访问各自的页面获取详细信息。
3.1.2 代码实现
- 模块的导入
- 总榜subject 爬取
- 详细信息爬取
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!