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

请求用户关注者列表。(同上)
