您好,登录后才能下订单哦!
小编给大家分享一下怎么使用python爬取B站千万级数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。
说起热门的B站相信很多喜欢玩动漫的,看最有创意的Up主的同学一定非常熟悉。我突发奇想学Python这么久了,为啥不用Python爬取B站中我关注的人,已经关注的人他们关注的人,看看全站里面热门的UP主都是是哪些。
要点:
- 爬取10万用户数据
- 数据存储
- 数据词云分析
写代码前先构思思路:既然我要爬取用户关注的用户,那我需要存储用户之间的关系,确定谁是主用户,谁是follower。
存储关系使用数据库最方便,也有利于后期的数据分析,我选择sqlite数据库,因为Python自带sqlite,sqlite在Python中使用起来也非常方便。
数据库中需要2个表,一个表存储用户的相互关注信息,另一个表存储用户的基本信息,在B站的用户体系中,一个用户的mid号是唯一的。
然后我还需要一个列表来存储所以已经爬取的用户,防止重复爬取,毕竟用户之间相互关注的现象也是存在的,列表中存用户的mid号就可以了。
先写建数据库的代码,数据库中放一个用户表,一个关系表:
我需要找到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.
我们数据集里面一共有2个表,一个用户列表,用来存储所以的用户信息,一个是用户之间的关注信息。
打算利用已经爬取到本地的数据进行词云的生成,来看一下这10万用户中共同的关注的哪些UP主出现的次数最多。
代码的思路主要是从数据库中获取用户的名字,重复的次数越多说明越多的用户关注,然后我使用fate的一张图片作为词云的mask图片,最后生成词云图片。
最后一起来看一下词云图
可以看出蕾丝,暴走漫画,木鱼水心,参透之C君,papi酱等B站大UP主都是热门关注。
以上是“怎么使用python爬取B站千万级数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。