获取斗鱼问答信息

douyuquiz的Python项目详细描述


douyuquiz

** v0.2** - Change log

douyuquiz 是一个基于python3.7开发用于获取 斗鱼直播间互动竞猜结果 的脚本。该程序能自动侦测特定主播是否上线,上线后识别互动竞猜内容,竞猜结果将会以 数据文件(quizdata.db) 的形式保存。

介绍

斗鱼(www.douyu.com) 是一个游戏直播网站。在直播间中,主播可以发起有关直播内容的互动竞猜。 本程序运行后可以自动保存特定主播的互动竞猜记录。记录内容包括竞猜标题,竞猜封盘时鱼丸总数,竞猜封盘时双方赔率和竞猜结果等。

特点

  • 功能简单(有且只有一个功能)
  • 自动侦测主播是否上线。若主播上线则获取竞猜消息,若主播下线或未开播,则每隔10分钟自动识别主播是否上线
  • 使用底层socket而不是网页爬虫来获取互动竞猜信息,低配置服务器也能轻松运行

安装

使用pip命令来安装douyuquiz

pip install douyuquiz

pip3 install douyuquiz

用法

fromdouyuquizimportdouyuquizdouyuquiz('room_id')#room_id 可以是string或int

room_id 为主播的房间号,通常在直播房间的url中可以获取 例如 ‘https://www.douyu.com/74751’74751 就是该直播间的房间号。

注意: 在斗鱼的一些特殊活动直播页面中,该数字并不是主播的房间号。如遇到这种情况,可以通过其他方式获取主播的房间号。

运行该python脚本。如果运行成功,将会显示如下信息: 注: 程序需要后台挂起

程序自动生成douyuquiz.log文件

当获取到竞猜消息时,将会显示如下内容:

竞猜结果将会储存到当前文件夹内的quizdata.db文件中。如果没有该文件,程序将自动新建quizdata.db

竞猜结果

timeroom_idquiz_idtitleleft_titleleft_totalleft_oddright_titleright_totalright_oddresult
2019-04-23 18:06:02............极难模....不存在的啊214778670.0可以17626909.91

time: 产生竞猜结果的时间
room_id: 房间号
quiz_id: 对每一次互动竞猜有斗鱼服务器自动生成的独特ID
title: 互动竞猜的标题
left(right)_title: 该竞猜左边或右边的标题
left (right)_total: 该竞猜左边或右边封盘时的鱼丸总数
left (right)_odd: 该竞猜左边或右边封盘时的赔率
result: 该次竞猜的结果。 ‘1’代表左边胜,‘2’或‘3’代表右边胜。‘0’代表流局

感谢

感谢知乎大神 @天白才痴 关于如何获取斗鱼弹幕的教程
感谢各位斗鱼主播 由于技术有限,欢迎大家对于本程序提出建议或意见。
邮箱:youbao2@hotmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java相当于。网络结构   是否可以在pycharm ide中使用java模块编译和执行项目?   java AVL树:解决StackOverflower错误   apache如何配置存根代理以使用SOAP服务javax ws   从C++调用java方法最简单的方法是什么?   java eclipse默认jpa实现库在哪里下载?   java根据用户输入/摩尔斯电码生成器从HashMap获取值   JavaWebSphere8。x无法在WEBINF/lib中识别axis 1.4 jar   java Netbeans将包文件夹dir更改为relative   java正在寻找堆数据结构实现方面的帮助   具有共享数据库和鉴别器列的java MultiTenant   java JDBI,使用sql查询将数据检索到自定义对象(构造函数)中,而不是映射   java无法获取用户详细信息:类org。springframework。网状物客户RestClientException,无法提取响应:无合适的   java错误膨胀类ja。burhanrashid52。摄影编辑。PhotoEditorView   内存不足。lang.OutOfMemoryError:Java堆空间(StringBuffer)   有没有一种方法可以编辑文本文件上的数据,而不必在Java中创建另一个临时文件?   在安卓 api 17中使用应用程序上下文膨胀视图时,java不能在安卓自定义toast的布局中使用material主题属性   java Hibernate多对多对象值无效