爬虫实例6(获取哔哩哔哩网站《后浪》弹幕并可视化显示)(pyecharts词云,pandas库)

声明,只用于学习研究爬虫

1.《后浪》弹幕词云

最近小视频《后浪》挺火,该视频是国家一级演员何冰登台演讲,认可、赞美与寄语年轻一代;对他们说:“你们有幸遇见这样的时代,但时代更有幸遇见这样的你们。”《后浪》在bilibili达到了1283.6万播放量,19.2万弹幕,137.2万点赞。

我播放的这个视频弹幕确实挺多,想看看弹幕里面哪些词出现频率最高,看是不是奔涌吧、后浪这些词汇,就萌生了使用pyecharts词云验证的想法。

编程语言:Python3.7. 系统:win10 64位。已将完整代码贴在自己的csdn和本文。

爬虫实例6(获取哔哩哔哩网站《后浪》弹幕并可视化显示)(pyecharts词云,pandas库)_第1张图片

2.代码流程

一是分析网站,弹幕是和视频是分离,在开发者工具里面找到弹幕的网址。
爬虫实例6(获取哔哩哔哩网站《后浪》弹幕并可视化显示)(pyecharts词云,pandas库)_第2张图片
爬虫实例6(获取哔哩哔哩网站《后浪》弹幕并可视化显示)(pyecharts词云,pandas库)_第3张图片
二是请求网站。获取到网址后request
三是解析网站
对于会爬虫的小伙伴们,这就很简单了,设置请求头,然后request,解析HTML数据,将获取的弹幕数据和出现的频率一起保存在CSV文件中
四是制作词云
pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图,pyecharts就此产生,所以也可以这么认为PyEcharts = Python + Echarts。原网站有词云实例代码,有兴趣的小伙伴可以下载看看。

3.完整代码

#!/usr/bin/python
#导入相关库
import requests,json,pandas
from bs4 import BeautifulSoup
from pyecharts import WordCloud

#请求网页
def get_html(url):
    headers={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
  }
    response=requests.get(url,headers = headers)
    response.encoding = 'utf-8'
    data=response.text
    return data

#解析网页
def paser_html(html):
    danmu=[]
    soup=BeautifulSoup(html,'lxml')
    barrages=soup.find_all('d')
    for barrage in barrages:
        danmu.append( barrage.text)

    #s数据分析包
    data = pandas.Series(danmu).value_counts()
    #将数据存入文件
    data.to_csv('danmu.csv',encoding='utf-8-sig')
#生成词云
def wordcloud():
    dan_to=pandas.read_csv('danmu.csv',names=['A','B'])
    wordcloud = WordCloud(width=800, height=500)
    wordcloud.add('', dan_to['A'],dan_to['B'], word_size_range=[20, 100],shape="diamond")
    wordcloud.render()
#主函数
if __name__ == '__main__':
    #弹幕地址
    url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=186803402'
    #请求网页
    html=get_html(url)
    #解析网页
    paser_html(html)
    #生成词云
    wordcloud()

你可能感兴趣的:(python,爬虫,词云)