大家好,如果您还对怎么取网站审查元素的源码分享不太了解,没有关系,今天就由本站为大家分享怎么取网站审查元素的源码分享的知识,包括网页的审查元素是不是就是源码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
Python爬取bilibili弹幕并生成词云
目标网站:我这里以TESvsSN第四场决胜局为例:
私信小编01即可获取大量Python学习资料
探索经历:
首先我们要找到我们想要爬取的弹幕都发在哪:我们先播放这个视频,随便记住一条弹幕,到审查元素里面搜索
哎,可以找到,然后我们再查看一下网页的源代码,没有搜索结果。。。。。。这说明bilibili的弹幕是动态加载的,是js请求的数据,可能是json,也可能是XML
通常我们都会通过翻页等操作让网页进行js请求,我们在“后台”盯着,看有没有多出来的文件,依次翻看一下里面的东西,看看有没有存放弹幕的文件,于是我继续播放视频,列表里也确实多了很多文件
但很可惜并没有找到我想要的存储弹幕的文件
我觉得播放视频还是没能请求到弹幕文件,于是我找到了第二种方法:(需要先登陆一下)
如图,切换不同的日期可以找到我们想要的存储弹幕文件,是个XML文件:
这样,我们就找到了目标url,复制url打开就是我们想要的弹幕页面
同样,我们也找到了规律这里有两个可以更换的参数:(1)oid:这个就是视频的id(这个可不太好找)
(2)date:这个很明显是日期
真正目标:
传送门:https://api.bilibili.com/x/v1/dm/list.so?oid=249509876&date2020-10-26
思路与方法:
(1)这个XML文件也是标签语言,用BeautifulSoup可以轻松爬取,存储到本地txt文件中(2)利用jieba库对txt内容进行分词,再合并成一个空格分割的字符串(用于Wordcloud参数)(3)使用Wordcloud生成词云并保存到本地
部分细节讲解:
弹幕标点符号和空格的去除:
这个是老生常谈了,我之前有一篇博客也说过:SimHei字体:https://www.uslogger.com/details/3
完整代码:
importrequests\nimportre\nimportos\nfrombs4importBeautifulSoup\nimportjieba\nfromwordcloudimportWordCloud\n\ndefgetHTMLText(url):\ntry:\nkv={&34;:&34;}\nr=requests.get(url,headers=kv)\nr.raise_for_status()\nr.encoding=r.apparent_encoding\nreturnr.text\nexcept:\nprint(&34;)\nreturn&34;\n\ndeffillbarrages(url,path_txt):\nhtml=getHTMLText(url)\nsoup=BeautifulSoup(html,&39;)\nwithopen(path_txt,&39;,encoding=&39;)asf:\nfordinsoup.find_all(&34;):\n39;\\W+&39;&39;r&39;utf-8&jieba分词\nbarrages=&34;.join(barrages_cut)34;F:\\Fonts\\SimHei.ttf&34;skyblue&34;https://api.bilibili.com/x/v1/dm/list.so?oid=249509876&date2020-10-26&34;TESvsSN第四场.txt&34;TESvsSN第四场.jpg&34;fillbarrages成功&34;getwordcloud成功”)\n\nmain()\n
词云展示:
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
