bilibili献给新一代的演讲《后浪》
弱小的人才习惯嘲讽和否定,而内心强大的人从不吝啬赞美和鼓励!我们就是后浪,奔涌吧!后浪,奔涌吧!新一代!相信你们看了这个视频会内心波涛汹涌。在b站待了这么长时间,很荣幸可以看到这样的视频。
正文
1:我们今天的目标是爬取此视频的弹幕,并生成词云。一方面是为了做笔记,总结今天学到的,另一方面,我是为了分享经验,以及让大家看到这满是正能量的弹幕词云,足以冲击你的内心。
2:实现思路
我们主要用到以下几点知识
python库: requests , re, csv, jieba,imageio,wordcloud
我们来打开billbill这个视频主页:
既然是分析 站,自然是右键查看源码了。
下面进行抓包,我们清空network下面的所有,现在我们点击日历上的2/17,我们观察会出现什么。来看
seg.sope=1&oid=186803402&date=2021-02-17
我分析这个包,后面是一个日期格式的参数。那我一定会想到,只要我按照这样的格式,我可以指定任意一天。很可能这个就是我们要寻求的方向。我们点进去。来看
这里放大了了,希望能看到这个蓝色的一行。很熟悉的,是url,下面是请求相关的。我们点进去这个url。会发现是一个文件,这个文件并不是普通的文件。你可以下载,然后用notepad打开,指定格式utf-8编码后,会显示这样。
我觉的代码很详细了,但是给大家在稍微说点就是为何要指定user-agent,以及cookie。
指定user-agent是为了模拟浏览器访问,否则 站会认为你是爬虫,是写程序去访问的,可能会被卡擦掉。当然还有指定高级的线程池什么的,在这里是没必要的。cookie,保存了你登陆 站的信息,很像一个身份证,如果你不指定cookie,那么 站会提示你登录的。可以把他理解为身份信息,当你访问 站时, 站就给你存一个cookie。
这里面有一个jieba库,是我们国人开发的,有点自豪。是用来分词的,具体可以去查阅文档理解相关的源码和方法。
re库是导入用来写正则语法的库,是用来匹配的。规则很简单,但是东西比较多哦。当然我们也可以直接去 站查看规则。很多匹配的语法规则都有。csv是一种文件格式,也可以去查看库理解,并不是难事。词云时,需要读取csv格式文件
代码中wordcloud中的参数mk代表指定根据的图片绘制词云,这里要求图片背景尽量为白色,里面可以有你想要的形状。更详细的请查看资料了解相关的方法。
还有就是关于with open()这部分代码中的newline参数,
当在读取模式下,如果新行符为None,那么就作为通用换行符模式工作,意思就是说当遇到n,r或rn都可以作为换行标识,并且统一转换为n作为文本输入的换行符。当设置为空’’时,也是通用换行符模式工作,但不作转换为n,输入什么样的,就保持原样全输入。当设置为其它相应字符时,就会判断到相应的字符作为换行符,并保持原样输入到文本。
当在输出模式时,如果新行符为None,那么所有输出文本都是采用n作为换行符。如果设置为’’或者n时,不作任何的替换动作。如果是其它字符,会在字符后面添加n作为换行符。所以这个参数的设置非常重要。
还有一个方法就是’ ‘.join(),代表以’ ‘拼接字符串。比如 string2 = ‘,’.join(‘abcd’)
那么会输出a,b,c,d。就是这样的意思。
我们来看代码的实现结果,这里有我的几个词云,好与不好,都与图片的选择有关,简单展示一下。
就写到这里了,相关的请遵守csdn博客协议。期待与大家共同进步。
近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫Selenium214998 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!