一、数据说明
本次实验用到的数据是前三季《极限挑战》第一期视频的评论数据和弹幕数据。
二、数据来源
本次实验所有数据均从bilibili爬取和处理得到。
(1)视频来源
评论和弹幕数据来源于以下三个视频(极限挑战1、2、3季的第一期)
https://www.bilibili.com/video/av98708690
https://www.bilibili.com/video/av98685840
https://www.bilibili.com/video/av497583982
(2)获取方法
B站视频的弹幕和评论有两个api接口,只需要更改两个参数即可访问弹幕和评论数据
评论数据
urlpl1='https://api.bilibili.com/x/v2/reply?type=1&oid=98708690&pn={}&sort=0'
urlpl2='https://api.bilibili.com/x/v2/reply?type=1&oid=98685840&pn={}&sort=0'
urlpl3='https://api.bilibili.com/x/v2/reply?type=1&oid=497583982&pn={}&sort=0'
弹幕数据
url1='https://comment.bilibili.com/168497302.xml'
url2='https://comment.bilibili.com/168459529.xml'
url3='https://comment.bilibili.com/170198331.xml'
评论数据的接口中oid参数即为视频的av号,但是现在B站已经开始使用BV号,所以寻找某一视频的av号需要在网页源代码里面搜索aid。而另一个参数pn为评论数据的页数,需要注意的是爬取的数据是按照时间顺序的。
弹幕数据接口中的参数为cid,同样是在网页源代码里面搜索cid,如下图:
(3) 爬取流程
- 使用的python库
import requests
import json
import pandas as pd
from lxml import etree
from bs4 import BeautifulSoup
import time
- 爬取评论及储存
以爬取第三季第一期评论数据为例(请求头自己添加即可,页数39是为了方便,自己查看页数后直接设定的)
comment
- 爬取弹幕及储存
u
上述操作将弹幕和评论数据爬取并且保存了下来。由于本文不是侧重于爬虫的文章,所以只粘贴了代码,不深入讲解爬取原理了,小伙伴们有兴趣可以自己爬取试试。
三、数据分析
(1)导入python库
# 数据分析
import pandas as pd
import numpy as np
import time
# 词云
from PIL import Image
from wordcloud import WordCloud, ImageColorGenerator
import jieba
# 情感分析
from snownlp import SnowNLP
# 可视化
from matplotlib import pyplot as plt
import matplotlib
import matplotlib.gridspec as gridspec
%matplotlib inline
matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
matplotlib.rcParams['axes.unicode_minus'] = False
- 数据分析最主要的库pandas、nump