B站( Bilibili)研究会之爬虫数据API获取

思路:

B站视频爬取思维导图

网页分析

获取到网页数据

https://api.bilibili.com/x/web-interface/view?aid=80859659

使用JSON格式化在线工具 这样分析查看比较清晰

 

GET https://api.bilibili.com/x/web-interface/view?bvid=#视频bvid
GET https://api.bilibili.com/x/web-interface/view?aid=#视频avid
正常返回
{"code":0,"message":"0","ttl":1,"data":{"bvid":"#bvid","aid":#avid,"videos":#包含视频数量,"tid":#分区id,"tname":"#分区","copyright":1,"pic":"#头图","title":"#视频标题","pubdate":#发布时间,"ctime":#创建时间,"desc":"#视频简介","state":0,"attribute":#UnKnow,"duration":#UnKnow,"mission_id":#UnKnow,"rights":{"bp":0,"elec":0,"download":1,"movie":0,"pay":0,"hd5":1,"no_reprint":1,"autoplay":1,"ugc_pay":0,"is_cooperation":0,"ugc_pay_preview":0,"no_background":0},"owner":{"mid":#作者id,"name":"#作者名字","face":"#作者头像"},"stat":{"aid":avid,"view":#观看量,"danmaku":#弹幕,"reply":#评论,"favorite":#收藏,"coin":#投币,"share":#分享,"now_rank":0,"his_rank":0,"like":#点赞,"dislike":#差评,"evaluation":""},"dynamic":"分类?","cid":#UnKnow,"dimension":{"width":1920,"height":1080,"rotate":0},"no_cache":false,"pages":[{"cid":#UnKnow,"page":1,"from":"vupload","part":"fans","duration":#UnKnow,"vid":"","weblink":"","dimension":{"width":1920,"height":1080,"rotate":0}}],"subtitle":{"allow_submit":false,"list":[]}}}

获取视频简介

GET https://api.bilibili.com/x/web-interface/archive/desc?callback=#回调参数&aid=#视频avid&page=&jsonp=jsonp

正常返回
#回调函数({"code":0,"message":"0","ttl":1,"data":"#内容"})
获取视频tags
GET https://api.bilibili.com/x/tag/archive/tags?callback=#回调参数&aid=#视频avid&jsonp=jsonp

正常返回
#回调函数({"code":0,"message":"0","ttl":1,"data":[{"tag_id":716671,"tag_name":"饭圈","cover":"","head_cover":"","content":"","short_content":"","type":0,"state":0,"ctime":1436866637,"count":{"view":0,"use":7196,"atten":942},"is_atten":0,"likes":122,"hates":18,"attribute":1,"liked":1,"hated":0}]})
视频点赞接口
POST https://api.bilibili.com/x/web-interface/archive/like

aid: #视频avid
like: #1为点赞,2为取消

正常返回
{"code":0,"message":"0","ttl":1}
获取你有没有给这个视频点赞
GET https://api.bilibili.com/x/web-interface/archive/has/like?jsonp=jsonp&aid=#视频avid&callback=#回调函数
视频tag点赞接口
POST https://api.bilibili.com/x/tag/archive/like2

tag_id: #tag的id
aid: #视频avid
jsonp: jsonp

正常返回
{"code":0,"message":"0","ttl":1}
超出限制
{"code":16012,"message":"顶/踩太多次啦,休息休息~","ttl":1}
评论点赞
POST https://api.bilibili.com/x/v2/reply/action

oid: #视频avid
type: 1
rpid: #评论的id
action: #1点赞,0取消点赞
jsonp: jsonp

正常返回
{"code":0,"message":"0","ttl":1}
评论点踩
POST https://api.bilibili.com/x/v2/reply/hate

oid: #视频avid
type: 1
rpid: #评论的id
action: #1点赞,0取消点赞
jsonp: jsonp

正常返回
{"code":0,"message":"0","ttl":1}

获取账号所有视频avid

空间接口可以正常get使用

https://space.bilibili.com/ajax/member/getSubmitVideos?mid=97678687&pagesize=30&tid=0&page=1&keyword=&order=pubdate

这个接口很好抓,并且不需要任何验证

可以从中轻易拿到视频数和页数

获取粉丝:

https://api.bilibili.com/x/relation/stat?vmid=80859659&jsonp=jsonp&callback=__jp2

请注意,所有的接口请求时候务必带上cookie,referer和csrf_token

返回结果对应

aid,#av号
title,#标题
tname,#视频类型
time.strftime(“%Y-%m-%d %H:%M:%S”,time.localtime(ctime)),#上传时间,网页获取时间为Unix时间戳,转换成一般时间显示模式
ownername,#作者
danmaku,#弹幕数
reply,#评论数
favorite,#收藏数
coin,#投币数
like#点赞数

 

 

备注:

嵌入Bilibili HTML5视频播放:
http://player.bilibili.com/player.html?aid=40606155&cid=71315067&page=1

key 说明
aid 视频ID
就是B站的 avxxxx 后面的数字
cid 应该是客户端id, clientId 的缩写(推测的, 不一定准确)
经过测试, 这个字段不填也没关系
page 第几个视频, 起始下标为 1 (默认值也是为1)
就是B站视频, 选集里的, 第几个视频
as_wide 是否宽屏
1: 宽屏, 0: 小屏
high_quality 是否高清
1: 高清, 0: 最低视频质量(默认)
如视频有 360p 720p 1080p 三种, 默认或者 high_quality=0 是最低 360p
high_quality=1 是最高1080p
danmaku 是否开启弹幕
1: 开启(默认), 0: 关闭

获取UP所有视频的API接口
http://space.bilibili.com/ajax/member/getSubmitVideos
获取UP某频道内所有视频的API接口
http://api.bilibili.com/x/space/channel/video
获取UP某一期视频信息的API接口
http://api.bilibili.com/x/web-interface/view
获取UP某一期视频中某P视频信息的API接口
http://api.bilibili.com/x/player/playurl
获取UP个人公开信息的API接口
http://api.bilibili.com/x/space/acc/info

 

参考资料

https://blog.csdn.net/chaoping315/article/details/80106141
https://segmentfault.com/a/1190000017511459?utm_source=tag-newest

 

赞 (1)