bilibili首页调用api分析
最近逛著名同性交友代码托管+分享网站GitHub时,发现某大佬的抓取bilibili追番列表作品,于是去看了一下bilibili首页的源码,试图找找实现的方式:
很明显大部分主页上的信息都没有跟随document从服务端来到用户端,那么显然是通过js从api获取数据在本地渲染,于是决定看看bilibili首页调用的api玩玩。
apis
部分api需要cookie验证登录,在此用“x”标注。
api.bilibili.com/x/web-show/res/locs
参数
pf
及from_spm_id
作用不明确,但from_spm_id
为访问主页时的spm_id_from
参数相同,据网友所言属于动作捕捉的依赖。
ids
对应的返回值:(据图可看出其中的id 2954
对应顶部导航栏的“BLS”项目)
根据id 7个指猜测对应上述7个options,应该是用于请求options是否有特殊样式设定。
passport.bilibili.com/x/passport-login/web/cookie/info
x
据url猜测为校验用户账户使用,csrf
应为md5加密作为用户识别码。
api.bilibili.com/x/web-interface/pcdn/v1
(据返回值为样式api)
api.bilibili.com/x/web-interface/search/default
(为顶部搜索框推荐视频信息)
api.bilibili.com/x/web-interface/dynamic/entrance
x
(不明意义)
据返回数据为更新显示,应需要cookie用于登陆校验。
api.bilibili.com/x/space/acc/info
mid
为user_id,用于请求用户基本信息。
space.bilibili.com/ajax/settings/getSettings
用于请求用户对主页展示的设定。以及各展示项目对应的id和顺序信息。
api.bilibili.com/x/relation/stat
vmid
为user_id,用于请求用户关注数等信息。
api.bilibili.com/x/space/upstat
x
请求用户所有作品总浏览数和获赞数。
api.bilibili.com/x/space/top/arc
官方返回数据显示为请求置顶视频,但咱并没有找到“置顶视频”是什么,“代表作”也并不是所谓“置顶视频”。
api.bilibili.com/x/space/masterpiece
请求用户“代表作”(这个才是嘛!)
api.bilibili.com/x/space/arc/search
请求用户投稿信息,返回值示例:
tlist为投稿各项分类的数量和id(依旧不明何用),vlist为所有视频的详细信息。
其他一致,pn
和ps
类似分页切片器,前者决定切片选择哪一个,后者决定切片长度,index
作用没有尝试出来。
api.bilibili.com/x/polymer/space/seasons_series_list
请求视频合集和视频分类,与上个api类似的切片器形式,page_num
决定页码,page_size
决定每页的合集+分类总数(经测试会优先返回合集,合集返回完才按照剩下个数返回分类)
api.bilibili.com/x/v3/fav/folder/created/list
请求用户公开的收藏夹信息。
注:收藏夹url:space.bilibili.com/(用户id)/favlist?fid=(收藏夹fid)&ftype=create
请求用户订阅的标签。
暂未尝试出用途。
api.bilibili.com/x/ugcpay-rank/elec/month/up
请求up主的充电信息(包括总数,近30次详细信息)。
api.bilibili.com/x/space/reservation
请求用户订阅信息,type=1为追番信息,type=2为追剧信息。
api.bilibili.com/x/space/notice
请求用户空间公告。
api.bilibili.com/x/space/navnum
视频和相簿数量等。
api.vc.bilibili.com/link_setting/v1/link_setting/get
用处不明确。
api.bilibili.com/x/msgfeed/unread
x
请求用户未读消息数量(需要cookie登陆校验)。
api.bilibili.com/x/space/article
请求用户专栏数据。
pi.bilibili.com/x/relation/followers
请求用户粉丝列表。(关于切片器见上文)(order
暂未发现任何其他有效取值)
api.bilibili.com/x/relation/followings
请求用户关注者列表。(同上)