研究B站在线人数

参考链接:

  • B站最详细的API
  • 【详解】b站改版后获取当前正在观看人数
  • 用python爬取B站在线用户人数

研究B站在线人数

目录

1. 前言
2. 全站在线人数和观看人数
3. 单个视频观看在线人数
4.总结

一、前言 ↶

最近想研究一下B站的在线人数的获得方式,并把相关的内容记录在自己的博客里。

二、全站在线人数和观看人数 ↶

研究B站在线人数_第1张图片
在查找资料的过程中,我发现了两个接口:
http://www.bilibili.com/online.js
https://api.bilibili.com/x/web-interface/online

测试结果:

# http://www.bilibili.com/online.js的访问结果
var web_online = 1104991; # 在线人数
var play_online = 1563580; # 观看人数
var onlineInfo={};var countInfo={c1:384,c11:3,c119:30,c129:60,c13:56,c155:223,c160:1628,c165:49,c167:43,c177:26,c181:766,c23:1,c3:696,c36:667,c4:3703,c5:1016};var detailCountInfo={};
# https://api.bilibili.com/x/web-interface/online的访问结果
{'code': 0,
 'data': {'all_count': 32720,
          'play_online': 5400994, #观看人数
          'region_count': {'1': 1211,
                           '11': 0,
                           '119': 142,
                           '129': 195,
                           '13': 53,
                           '155': 458,
                           '160': 9547,
                           '165': 114,
                           '167': 88,
                           '177': 188,
                           '181': 3091,
                           '188': 309,
                           '23': 2,
                           '3': 2469,
                           '36': 1443,
                           '4': 11177,
                           '5': 2233},
          'web_online': 4101115}, #在线人数
 'message': '0',
 'ttl': 1}

因为人数是不停变化的,综合来看,我认为第二个的结果比较合理。

三、单个视频观看在线人数 ↶

注意事项:以下api.bilibli.com开头的链接无法直接请求,需要改请求参数。可以F12抓包或其他,获取返回信息;或者自己改请求头,关键参数一般是Host和Referer。

同样的,我也找到一个接口,接口格式如下:
https://api.bilibili.com/x/player.so?id=cid:+cid号+&aid=+aid号
aid号 = av号
cid号,通过http://www.bilibili.tv/widget/getPageList?aid=+aid号 【在 B站最详细的API 可以了解更多】
e.g.

  1. 测试视频:av57880560

  2. 预览图:
    研究B站在线人数_第2张图片

  3. aid = av = 57880560

  4. 请求:http://www.bilibili.tv/widget/getPageList?aid=57880560
    得到:
    [{"page":1,"pagename":"\u5929\u4f7f\u91cd\u6784 \u6b63\u7247","cid":101063272}]
    cid = 101063272

  5. 拼接api,得到:
    https://api.bilibili.com/x/player.so?id=cid:101063272&aid57880560
    返回结果:
    研究B站在线人数_第3张图片
    返回结果与截图数据相差不大,说明数据基本符合,可以接受。
    这个接口有无Cookie返回结果不一样,某种意义上也挺好,可以自行测试。
    隐约觉得还有别的接口,但是我没有找到,因为这个接口返回的数据太多和太具体了,但是确实返回了我们想要的在线人数。

四、总结 ↶

主要写了如何获取全站在线人数和观看人数以及单个视频观看在线人数的方法,可能没什么用吧,放在这里记录一下。
那么,让我们继续加油吧!ヾ(◍°∇°◍)ノ゙

点我回顶部 ☚

 
 
 
 
 
 
 
Fin.

你可能感兴趣的:(我的爬虫之旅)