哔哩哔哩弹幕逆向

用途

查找bilibili.com中弹幕的发送者

如何使用

终端中输入:

python bili_reverse.py

然后会提示让你输入BV号,你输入弹幕所在的BV号,开头带不带BV无所谓

然后程序会列出此BV号下的所有视频与其cid


输入你要找的弹幕所在的cid

然后程序会列出此cid下的所有弹幕与其发送者用户hash


输入你要逆向的用户hash


稍等片刻就可以逆向出弹幕发送者啦

代码

# -*- coding: UTF-8 -*-
# 初学者学习python的副产品
import requests                                 #网页
from scrapy.selector import Selector
import binascii                                 #转码
from tqdm import tqdm                           #进度条
import webbrowser                               #打开浏览器
import re                                       #正则表达式def crc32asii(v):return '%x' % (binascii.crc32(v) & 0xffffffff)def findUid(toBeFind , begin = 1 , end = 900000000 ):#穷举法逆向用户hashans = []print("逆向中……")for i in tqdm(range( begin , end )):c = crc32asii(bytes(str(i), encoding='utf-8'))if(toBeFind == c):ans.append(i)print("找到:" + str(i) )if( input("极小可能哈希重值,是否继续? y/n :") != 'y' ):breakreturn ansdef cid2hash(cid):t = ''url = 'https://api.bilibili.com/x/v1/dm/list.so?oid='+str(cid)body = requests.get(url).contentxbody = Selector(text=str(body, encoding='utf-8'))lists = xbody.xpath("//d")for li in lists:content = li.xpath("./text()").get()par = li.xpath("./@p").get()pattern = re.compile(r'(?<=,0,)\w+(?=,)') #正则表达式可能不严谨sentence = str(par)idHash = re.search(pattern, sentence )# idHash.group(0)提取搜索到的值text = 'hash: ' + str(idHash.group(0))+ " | " + str(content)+'\n' t = t + textprint(t)def bvid2cid(bvid):# api来自 https://www.v2ex.com/t/655711url = 'https://danmu.u2sb.top/api/other/bilibili/queryaid/?bvid=' + str(bvid)urlReturn = requests.get(url)zidian = urlReturn.json()if(zidian['data'] == None):print('查无此BV!')return -1for i in zidian['data']['pageList']:print('cid:%10d  |  p%d %s'  % (i['cid'] , i['page'] , i['part']))return 0def main():bvid = input("输入bv号:")while(bvid2cid(bvid) == -1):bvid = input("重新输入bv号:")cid = input("输入你选择的cid:")cid2hash(cid)yourHash = input("选择弹幕用户hash:")ans = findUid(yourHash)print("uid = " + str(ans))if(input("是否打开用户主页? y/n :") == 'y'):for i in ans:webbrowser.open("https://space.bilibili.com/" + str(i))return 0if __name__ == '__main__':main()

此文同时发布于

知乎-python实现通过哔哩哔哩弹幕获取发送者id

GitHub

【Python】通过哔哩哔哩弹幕获取发送者id相关推荐

  1. php弹幕反检测,【原理讲解附源码】找到B站弹幕的发送者

    本帖最后由 厄斐琉斯 于 2020-7-31 23:19 编辑 特别鸣谢:感谢Hatsune_miku前辈在github上开源的部分源码 声明:任何人不得将其用于任何商业目的,否则后果自负! 前言:之 ...

  2. 哔哩哔哩弹幕处理+情感倾向分析

    1.首先获取某一视频的弹幕 用此方法获取B站视频的XML弹幕 2.弹幕解析部分 将xml弹幕解析,并写入csv文件 代码部分: import xml.etree.ElementTree as ET i ...

  3. 哔哩哔哩弹幕api及一些解释

    有两个弹幕api接口,分别是移动端与电脑端 https://comment.bilibili.com/ + cid + .xml https://api.bilibili.com/x/v1/dm/li ...

  4. 如何写一只抓哔哩哔哩弹幕的爬虫

    原文地址:http://blog.csdn.net/bigbigsman/article/details/78639053 如何写一只抓哔哩哔哩弹幕的爬虫 爬虫工作流程 解析首页获得视频cid 构造所 ...

  5. 【python+pyqt5】B站直播弹幕姬

    文章目录 前言 1.日志对象 2.获取弹幕 3.qt窗口 窗口间传递信号 主窗口 设置窗口 弹幕展示窗口 托盘 4.主函数 5.最终成果及使用方法 6.开源地址 前言 这个软件是基于我半年多前写的一个 ...

  6. 分享-如何在b站中找到弹幕发送者是谁

    前言 总所周知bilibili是没有办法直接查看弹幕的发送者的,这使得当我们看到一些nt弹幕的时候虽然生气,却无可奈何,但是B站是可以屏蔽某个用户发送的弹幕的,这说明数据接口里肯定有用户信息,由于最近 ...

  7. 如何在bilibili中查找弹幕发送者

    文章最下面有工具链接! 前言 总所周知bilibili是没有办法直接查看弹幕的发送者的,这使得当我们看到一些nt弹幕的时候虽然生气,却无可奈何,但是B站是可以屏蔽某个用户发送的弹幕的,这说明数据接口里 ...

  8. Python爬取哔哩哔哩实时直播弹幕

    用Python爬取哔哩哔哩直播弹幕,关键在于找到哔哩哔哩网站的一个POST网址,和应该POST的数据.代码不长,十分简单.关键在于浏览器开发者工具的使用.希望对于新入门的萌新有一定的借鉴意义. 1.找 ...

  9. 菜鸟弟弟从零开始的爬取Bilibili弹幕的Python爬虫教程-哔哩哔哩 - ( ゜- ゜)つロ 干杯~

    从零开始的爬取Bilibili弹幕的Python爬虫教程 或许可以作为一个爬虫小白的练手的demo? 还是先看看什么是爬虫吧!(还有Bilibili! ) 网络爬虫: 网络爬虫(又称为网页蜘蛛,网络机 ...

最新文章

  1. Fragment 复习一
  2. 图像增强之拉普拉斯锐化---高斯一阶导二阶导数
  3. LaTeX配置及实用工具汇总
  4. Spring factoryBeanInstanceCache在哪里进行put?
  5. Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View...
  6. 使用python构建三层神经网络、softmax函数
  7. html百度天气api,百度API 免费接口获取天气预报
  8. .unl 文件 导入 mysql_mysql数据导出导入
  9. 树莓派实现固定IP地址
  10. 装配图中齿轮的画法_机械制图之装配图
  11. AutoML 前瞻与实践 ---- AutoML 简介
  12. 计算机本科生论文都抽查什么,本科生毕业论文抽查,抄袭马上会被撤销学位,学生最好别违规...
  13. MGJRouter代码分析
  14. Learning records1:nltk安装的一些注意点(学习自用)
  15. 微信小程序通过微信群发消息(订阅消息)
  16. 微信小程序之个人界面编写(2023.5.9版)
  17. python交互式程序设计导论答案第五周_学堂在线_计算机科学与Python编程导论_章节测试答案...
  18. 对百度Bingo算法的猜测
  19. C# 控制TSC打印机功能
  20. FFmpeg源代码简单分析-编码-av_write_trailer()

热门文章

  1. Volley传入请求体不成功的解决方案
  2. Python读excel去重
  3. linux解压z格式文件夹,使用7zip解决解压zip格式文件名乱码, 最简单的解决解压z...
  4. 可通过HTTP获取远端WWW服务信息
  5. [OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ∗原文翻译(注释版)
  6. matlab,sas,r培训,论SAS,R, Matlab, 和Stata
  7. 调研分析-全球与中国可堆叠USB连接器市场现状及未来发展趋势
  8. 基础会计学知识点汇总
  9. 2015年职称计算机考试宝典,(2015年职称计算机考试宝典.doc
  10. 超宽输入范围车载DCDC资料,原理图,PCB,软件,规格书, BOM等详细资料