哔哩哔哩(英文名称:bilibili,简称B站)现为国内领先的年轻人文化社区,该网站于2009年6月26日创建,被粉丝们亲切的称为“B站”。
B站的特色是悬浮于视频上方的实时评论功能,爱好者称其为“弹幕”,这种独特的视频体验让基于互联网的弹幕能够超越时空限制,构建出一种奇妙的共时性的关系,形成一种虚拟的部落式观影氛围,让B站成为极具互动分享和二次创造的文化社区。B站目前也是众多网络热门词汇的发源地之一。
大家都知道B站的动漫资源可是十分丰富的,而且大多年轻人都喜欢看动漫,所以这次就从B站爬取了20部比较热门的动漫作品并做一个简单的数据分析。
1.数据爬取
1.1获取API接口
需要爬取bilibili动漫需要先找到bilibili的api接口,通过浏览器f12分析后,可以查询到api接口。
https://api.bilibili.com/pgc/season/index/result?season_version=-1&spoken_language_type=-1&area=-1&is_finish=-1©right=-1&season_status=-1&season_month=-1&year=%5B2021%2C2022)&style_id=-1&order=3&st=1&sort=0&page=1
其中page参数是页面数,所以我们只需要修改page参数,就可以获取不同的动漫基本信息(动漫名称和SSID)获取到SSID后,再通过SSID来查找对应动漫的点赞数,追番数等信息。
https://api.bilibili.com/pgc/web/season/stat?season_id=
https://www.bilibili.com/bangumi/play/ss
https://api.bilibili.com/pgc/view/web/season?ep_id=
通过这三个api接口获取番剧信息。
1.2得到基本数据
通过此函数得到数据信息。
# 得到一个指定URL的网页内容
def askURL(url):
head = { # 模拟浏览器头部信息,向服务器发送消息
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
} # 用户代理,告诉服务器我是浏览器
req = urllib.request.Request(url, headers=head)
html = ""
try:
response = urllib.request.urlopen(req) # 向网页发起请求,爬取数据
html = response.read().decode("utf-8")
# print(html)
except urllib.error.URL