python爬取B站千万级数据,发现了这些热门UP主的秘密!

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

粉丝独白

说起热门的B站相信很多喜欢玩动漫的,看最有创意的Up主的同学一定非常熟悉。我突发奇想学Python这么久了,为啥不用Python爬取B站中我关注的人,已经关注的人他们关注的人,看看全站里面热门的UP主都是是哪些。

要点:

- 爬取10万用户数据

- 数据存储

- 数据词云分析

1.准备阶段

写代码前先构思思路:既然我要爬取用户关注的用户,那我需要存储用户之间的关系,确定谁是主用户,谁是follower。

存储关系使用数据库最方便,也有利于后期的数据分析,我选择sqlite数据库,因为Python自带sqlite,sqlite在Python中使用起来也非常方便。

数据库中需要2个表,一个表存储用户的相互关注信息,另一个表存储用户的基本信息,在B站的用户体系中,一个用户的mid号是唯一的。

然后我还需要一个列表来存储所以已经爬取的用户,防止重复爬取,毕竟用户之间相互关注的现象也是存在的,列表中存用户的mid号就可以了。

2.新建数据库

先写建数据库的代码,数据库中放一个用户表,一个关系表:

3.爬取前5页的用户数据

我需要找到B站用户的关注列表的json接口,很快就找到了,地址是:

https://api.bilibili.com/x/relation/followings?vmid=2&pn=1&ps=20&order=desc&jsonp=jsonp&callback=__jp7

其中vimd=后的参数就是用户的mid号

pn=1指用户的关注的第一面用户,一面显示20个用户

因为B站的隐私设置,一个人只能爬取其他人的前5页关注,共100人。

整个爬取页面的思路比较简单,首先设置header,用requests库进行API请求,获得关注的用户数据列表。

我们爬取前5页,每一页的数据进行简单的处理,然后转为字典数据进行获取mid,uname,sign3个维度的数据,最后save()函数存入db.

4.存入数据库

我们数据集里面一共有2个表,一个用户列表,用来存储所以的用户信息,一个是用户之间的关注信息。

5.探秘是热门UP主

打算利用已经爬取到本地的数据进行词云的生成,来看一下这10万用户中共同的关注的哪些UP主出现的次数最多。

代码的思路主要是从数据库中获取用户的名字,重复的次数越多说明越多的用户关注,然后我使用fate的一张图片作为词云的mask图片,最后生成词云图片。

最后一起来看一下词云图

可以看出蕾丝,暴走漫画,木鱼水心,参透之C君,papi酱等B站大UP主都是热门关注。

Python可以做什么?

web开发和 爬虫是比较适合 零基础的

自动化运维 运维开发 和 自动化测试 是适合 已经在做运维和测试的人员

大数据 数据分析 这方面 是很需要专业的 专业性相对而言比较强

科学计算 一般都是科研人员 在用

机器学习 和 人工智能 首先 学历 要求高 其次 高数要求高 难度很大

我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习”关注

欢迎大家加入千人交流答疑裙:699+749+852

原文地址:http://blog.51cto.com/13726370/2126143

时间: 2024-10-11 15:53:18

python爬取B站千万级数据,发现了这些热门UP主的秘密!的相关文章

python 爬取天猫美的评论数据

笔者最近迷上了数据挖掘和机器学习,要做数据分析首先得有数据才行.对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了.本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似的做法,不赘述.主要是分析页面以及用Python实现简单方便的抓取. 笔者使用的工具如下 Python 3--极其方便的编程语言.选择3.x的版本是因为3.x对中文处理更加友好. Pandas--Python的一个附加库,用于数据整理. IE 11--分析页面请求过程(其他类似的流量监控工具亦可).

python爬取ajax动态生成的数据 以抓取淘宝评论为例子

在学习python的时候,一定会遇到网站内容是通过ajax动态请求.异步刷新生成的json数据的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看博客内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据 四

零基础如何学好python爬虫?之python爬取B站小视频

B 站真是个神奇的网站.找不到资料了,去 B 站逛一逛,保准有你满意的东西. 前几天写了个爬虫,用 path.re.BeautifulSoup 爬取的 B 站 python 视频,如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了 B 站真是个神奇的网站.找不到资料了,去 B 站逛一逛,保准有你满意的东西. 前几天写了个爬虫,用 path.re.BeautifulSoup 爬取的 B 站 python 视频,如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了 废话不多说直接上

Python爬取天气网历史天气数据

我的第一篇博客,哈哈哈,记录一下我的Python进阶之路! 今天写了一个简单的爬虫. 使用python的requests 和BeautifulSoup模块,Python 2.7.12可在命令行中直接使用pip进行模块安装.爬虫的核心是利用BeautifulSoup的select语句获取需要的信息. pip install requests pip install bs4 以武汉市2017年5~7月的历史为例爬取天气网中武汉市的历史天气数据. 7月对应的网址为http://lishi.tianqi

使用python爬取东方财富网机构调研数据

最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了javascript网络访问,然后将服务器返回的数据插入网页,无法通过网址直接获取对应页的的页面数据. 通过chrome的开发者工具,我们可以看到点击下一页按钮背后发起的网页访问: 在点击下一页时,浏览器向地址发起了访问.我们分析一下这个地址的结构: http://data.eastmoney.co

python爬取安居客二手房网站数据(转)

之前没课的时候写过安居客的爬虫,但那也是小打小闹,那这次呢, 还是小打小闹 哈哈,现在开始正式进行爬虫书写 首先,需要分析一下要爬取的网站的结构: 作为一名河南的学生,那就看看郑州的二手房信息吧! 在上面这个页面中,我们可以看到一条条的房源信息,从中我们发现了什么,发现了连郑州的二手房都是这么的贵,作为即将毕业的学生狗惹不起啊惹不起 还是正文吧!!! 由上可以看到网页一条条的房源信息,点击进去后就会发现: 房源的详细信息. OK!那么我们要干嘛呢,就是把郑州这个地区的二手房房源信息都能拿到手,可

python爬取opgg的LOL英雄数据

完整源码链接: https://pan.baidu.com/s/1CWLXwlJGcq01jww8HXu3zg   (加入了部分图形界面) 由于爬取结果都是英语的版本,所以需要翻译. 另外的两个txt文件是翻译,已经完成了大部分基础的翻译,如想需要添加可以按格式填写 运行效果: 代码思路和步骤: 首先第一步,是获得所有英雄的名字和对应的url: 先观察网页的html,就能发现 <div>的data-champion-key属性中的就是英雄的名字,然后<a>的href属性就是英雄对应

Python 爬取 B 站,宋智孝李光洙哪个更受宠?

在中国,大家应该都了解<跑男>这个节目吧,跑男这个节目就是引用了韩国的<Running Man>,成员组成包括原六位成员刘在石.池石镇.金钟国.HAHA(河东勋).宋智孝.李光洙 ,以及两位新成员全昭旻.梁世灿 . 自从限韩令发布后,Running man在除B站以外的各大视频网站均下架,所以本文从B站出发,抓取相关视频的所有评论. 由于相关视频非常多,本文选择了最具代表性,点击量观看次数最多的视频. 进入这个页面后开始抓包(https://www.bilibili.com/vid

使用python爬取P站图片

刚开学时有一段时间周末没事,于是经常在P站的特辑里收图,但是P站加载图片的速度比较感人,觉得自己身为计算机专业,怎么可以做一张张图慢慢下这么low的事,而且这样效率的确也太低了,于是就想写个程序来帮我下,但是只会C与c++的我看来是无法用他们来做这事的,于是就去学了下简单,强大的python,不得不说,python的模块的确叼,依靠几个模块就可以在完全不知道原理的前提下让程序执行相应功能,这样虽然爽但对于学习不利,我这次就权当写着玩吧,在我学会怎样使用c++来做这事之前我不会再使用python编