This repository has been archived on 2024-09-10. You can view files and clone it, but cannot push or open issues or pull requests.
2022-06-12 09:48:02 +08:00
2022-06-12 01:11:18 +08:00
2022-06-12 01:11:34 +08:00
2022-06-05 16:00:52 +08:00
2022-06-05 15:54:29 +08:00
2022-06-12 09:20:31 +08:00
2021-11-29 18:27:02 +08:00
2022-06-05 09:38:48 +08:00
pic
2022-05-19 20:16:45 +08:00
2022-06-12 09:48:02 +08:00
2021-11-29 14:53:29 +08:00

抖音web直播间(live.douyin.com)弹幕抓取

近期工作内容比较繁重,大概率会摸一段时间 (from:q792602257)

实现功能:

  1. 使用新版mitmproxy使mitmproxy进程跑在主进程里兼容Python3.10
  2. 数据无磁盘IO通过Queue请求传输proto数据如果对弹幕发送时间要求较高的可以使用消息对象中的时间
  3. 修改输出为组件化,后期通过配置进行启用或禁用,开发者也可以自行编写对应的保存逻辑
  4. 自动打开配置的房间及用户首页

对其中的修改:

  1. 删除了mongo相关内容以后补吧……重写一个也不麻烦

待实现功能(咕):

  1. 未开播时,自动刷新页面进行重新检测
  2. 下播事件触发及对应动作
  3. 上播事件触发及自动打开对应的房间
  4. 录播支持
  5. 异步输出支持

如何配置

  1. 首先配置config/settings.ymlwebdriver.use将要使用到的浏览器(现仅支持chromeedge浏览器)
  2. 下载对应浏览器WebDriver驱动
  3. 配置WebDriver驱动可执行文件目录
    • Edge浏览器请配置于webdriver.edge.bin
    • Chrome浏览器请配置于webdriver.chrome.bin
  4. 配置浏览器是否需要无头headless模式
    • webdriver.headless设置为True浏览器打开后不会显示窗口适合Linux服务器等无需显示的情况
    • webdriver.headless设置为False浏览器打开后会显示窗口更适合需要自己手动操作浏览器等其他需要显示情况
  5. 配置输出插件(output.use),可以自由搭配使用
    • print:控制台打印的组件,收到弹幕信息会在控制台中输出
    • xmlB站弹幕姬相兼容的弹幕格式适用于后期与视频叠加或分析
    • debug:开发或测试使用,会保存所有未处理的消息类型,及保留报错信息,方便后期维护排查
  6. 配置默认需要打开的房间及用户主页
    • live.rooms: 填写房间号(链接地址最后一串数字),或者完整链接地址
    • live.users: 填写用户加密ID用户首页链接地址最后一串字符串或者完整链接地址 (暂无任何用途)

运行步骤:

  1. 安装依赖 pip install -r requirements.txt
  2. 按照上述步骤进行配置
  3. 运行main.py

屏幕效果截图

enter image description here

enter image description here

配置文件说明

  • mitmmitmproxy相关配置
    • hostmitmproxy监听地址无特殊要求不建议修改
    • portmitmproxy监听端口无特殊要求不建议修改
  • webdriver浏览器WebDriver相关配置
    • headless:是否开启无头模式,True/False
    • use:使用哪个浏览器,chrome/edge
    • edgeEdge浏览器相关配置用谷歌可以不管这个
      • binwebdriver可执行文件路径
    • chromeChrome浏览器相关配置用Edge的可以不管这个
      • binwebdriver可执行文件路径
      • no_sandbox:是否添加--no-sandbox启动参数用于root用户启动浏览器True/False
  • output:输出相关配置
    • use:使用的输出模块,为一个数组,print/xml/debug
    • xmlXML输出模块相关配置
      • save_path预留内容,实际没有作用
      • file_patternxml文件名称格式现在也只有默认的这个待后续开发
    • debugDebug输出模块相关配置
      • save_path:保存路径相关配置
        • error:如果遇见错误,将错误存储在这个路径下
        • debug:如果遇见未处理的消息类型,将该消息存储在这个路径下
        • known预留内容,实际没有作用
  • live:直播间相关配置
    • rooms:房间号(链接地址最后一串数字),或者完整链接地址,为一个数组
    • users用户加密ID用户首页链接地址最后一串字符串或者完整链接地址 ,为一个数组
  • api:这个现在暂时没啥用了……
    • userinfo:……
Description
No description provided
Readme 716 KiB
Languages
JavaScript 98.6%
Python 1.4%