davidkingzyb / pccold

douyu斗鱼 自动化工具 主播上线通知 & 直播视频自动录制 & 弹幕抓取
MIT License
191 stars 29 forks source link

现在是不是没法使用弹幕抓取功能了 #15

Closed joechenrh closed 4 years ago

joechenrh commented 4 years ago

无法连接openbarrage.douyutv.com

davidkingzyb commented 4 years ago

可以用,$ pccolddanmu 需配置

#弹幕配置
username="visitor9986987" #弹幕登陆名
uid="1167614891" #弹幕 user ID
joechenrh commented 4 years ago

好的,感谢

joechenrh commented 4 years ago

不好意思再问一下,这个弹幕抓取是不是不能抓到所有弹幕(所有是相对于网页版)

davidkingzyb commented 4 years ago

和网页一样的、

joechenrh commented 4 years ago

和网页一样的、

捕获 两个终端,收到的弹幕可能会不一样,和网页相比也可能偶尔少一条

davidkingzyb commented 4 years ago

你用的是这个么?

joechenrh commented 4 years ago

你用的是这个么?

对的,就是改了一下输出格式和输出内容,去掉了除chatmsg类型以外消息的处理

joechenrh commented 4 years ago

你用的是这个么?

对的,就是改了一下输出格式和输出内容,去掉了除chatmsg类型以外消息的处理

我在想是不是WebSocketApp的问题,我还是想办法把chrome里收到的数据导出来对比看看吧😗

joechenrh commented 4 years ago

看了一下Python收到的数据,一次收到的数据可能包含若干条信息(可能是不同类型,也可能是两条弹幕),所以还得想办法先对原数据split才行。

davidkingzyb commented 4 years ago

看了一下Python收到的数据,一次收到的数据可能包含若干条信息(可能是不同类型,也可能是两条弹幕),所以还得想办法先对原数据split才行。

好像是的,之前没有注意到这个问题 1

davidkingzyb commented 4 years ago

我有空重新实现下pystt,感谢提问

joechenrh commented 4 years ago

现在暂时靠找type@=来分割,应该不会有其他的键值对里出现这个关键词吧

def split(message): 
    pos = [ ] 
    type_pos = message.find(b'type@=')
    while type_pos != -1:
        pos.append(type_pos)
        type_pos = message.find(b'type@=', type_pos + 1)

    pos.append(len(message) + 12)

    messages = [ ]
    for i in range(len(pos) - 1):
        messages.append(message[pos[i]: pos[i + 1] - 12 - 1])

    return messages
davidkingzyb commented 4 years ago

merge #16 ,更新在版本v0.29 。thx PR