【python35小工具】b站弹幕保存

本文介绍了一种从Bilibili网站实时抓取弹幕的方法,通过POST请求获取JSON数据,解析并提取用户名、时间及弹幕内容,实现弹幕的实时显示与存储。

后面有时间学习弹框,加个弹框

效果图:

 

 

原理:

原理简单不繁琐

1 根据设置的参数去post请求json参数

 

2 json提取出用户名和时间以及弹幕内容

(其中值得注意的时,页面默认会保存10个弹幕,我的方法是迭代的时候,取最后一个,然后if简单判断不重复打印)

 

 

 

 

代码:

# -*- coding: utf-8 -*-
import requests,time



def post_info_data():
    from_data = {'roomid':11163111}

    return from_data

def post_data_url(data):
    url='https://api.live.bilibili.com/ajax/msg'
    respone = requests.post(url,data=data)
    data=respone.json()['data']['room']
    #来自作者https://www.cnblogs.com/-admin-login-aspx/
    itemcont_text = []
    itemcont_nickname = []
    itemcont_timeline = []

    for items in data:
        itemcont_timeline.append(items['timeline'])
        itemcont_nickname.append(items['nickname'])
        itemcont_text.append(items['text'])
    s1 = ('\n'+itemcont_timeline[-1]+'\t'+'#用户名:'+itemcont_nickname[-1]+'\n'+'\n#弹幕:'+itemcont_text[-1]+'\n'+'*'*127)
    #s1 type str

    return s1

#start
post_data = post_info_data()

cont2 = ''
while True:

    cont = post_data_url(post_data)
    #获取值

   
    if cont == cont2:
        pass
    else:
    #两次值比较,不等则打印,并且赋值给cont1
    #来自作者https://www.cnblogs.com/-admin-login-aspx/
        print (cont)

        with open('c://test.txt', 'a',encoding="utf-8") as f:
            #'a'则是追加,'w'覆盖
            f.write(cont)
        
        cont2 = cont

  

 有需要的拿去,但是请注明出处

 

转载于:https://www.cnblogs.com/-admin-login-aspx/p/10334884.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值