社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python获取B站视频信息

初与久歌_4a05 • 6 年前 • 637 次点击  

B站的每个视频都有对应的时长,点赞数,投币数,收藏数,弹幕条数,评论人数,以及包括视频标题,封面等等信息,还有很多有关视频和up主的相关信息。现在我们试着用python来爬取一些有趣的信息。


import urllib3
import requests
import json
from urllib import request

bv=input('please input a bvid:')
url='http://api.bilibili.com/x/web-interface/view?bvid='+bv
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
}   #请求头,模拟浏览器的运行
urllib3.disable_warnings()  #从urllib3中消除警告
response = requests.get(url,headers=headers)
content = json.loads(response.text)
    # 获取到的是str字符串 需要解析成json数据
# print(response.content.decode('utf-8'))
statue_code = content.get('code')
#print(statue_code)
if statue_code == 0:   
    cid=content['data']['cid']
    duration=content['data']['duration']
    view=content['data']['stat']['view']
    danmaku=content['data']['stat']['danmaku']
    reply=content['data']['stat']['reply']
    favorite=content['data']['stat']['favorite']
    coin=content['data']['stat']['coin']
    share=content['data']['stat']['share']
    like=content['data']['stat']['share']

    data=content['data']['pic']   #封面信息
    name='fengmian.jpg'
    request.urlretrieve(data,filename=name)
    
print('cid:',cid)
print('duration(时长):',duration)
print('view(观看次数):',view)
print('danmaku(弹幕条数):',danmaku)
print('reply(评论条数):',reply)
print('favorite(收藏人数):',favorite)
print('coin(投币数):',coin)
print('share(分享):',share)
print('like(点赞人数):',like)

please input a bvid:BV1JK411p7pd
cid: 197603144
duration(时长): 78
view(观看次数): 649699
danmaku(弹幕条数): 1419
reply(评论条数): 1666
favorite(收藏人数): 22566
coin(投币数): 38282
share(分享): 7679
like(点赞人数): 7679

然后在程序的同一目录下会出现对应视频的封面(awsl,为小姐姐打call!!!)


至于视频里的文件中的信息是如何排列的,json文件中具体的的数据格式的问题,需要参考下面的文章,里面详细的列举了B站视频的各种信息的存储位置和作用,希望对大家有所帮助。
https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/info.md
更多文章:
python进行B站av号和bv号的转换

用python爬取B站弹幕并绘制词云

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/74314