Python基于Selenium实现斗鱼直播间弹幕抓取

山海之间
山海之间
发布时间:2026-10-12 | 4人浏览过
原创

本文介绍使用Python Selenium库抓取斗鱼直播间弹幕的方法。通过配置Chrome无界面模式并优化加载策略,脚本可自动进入指定房间,循环提取弹幕文本并保存至txt文件。文章提供了完整的代码示例及运行效果截图,适合需要简单获取直播互动数据的开发者参考。

若仅需获取网页可见的弹幕数据,使用Selenium即可实现。对于直播平台,通常存在第三方API可获取更详细数据(如发送者昵称、礼物信息等),但这需要客户端向弹幕服务器发送登录请求及心跳包等复杂交互。本文仅演示如何获取弹幕信息并存储为txt文件,下面提供具体代码与相关图片。

具体实现代码如下:

import time
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
# 使用headless无界面浏览器模式
# chrome_options.add_argument('--headless')
# chrome_options.add_argument('--disable-gpu')
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome(chrome_options=chrome_options)
url = 'https://www.douyu.com/'


def getDanmu(homeId):
  homeHref = url+str(homeId)
  browser.get(homeHref)

  while 1: 
    time.sleep(2)
    try:
      for i in browser.find_elements_by_xpath('.//div[@class=" danmu-6e95c1"]/div/div'):
        if len(i.text) > 0:
          try:
            print(i.text)
          except:
            pass
          saveDanmu(i.text)
        else:
          continue
    except:
      time.sleep(2)
      for i in browser.find_elements_by_xpath('.//div[@class=" danmu-6e95c1"]/div/div'):
        if len(i.text) > 0:
          try:
            print(i.text)
          except:
            pass
          saveDanmu(i.text)
        else:
          continue


def saveDanmu(danmu):
  with open('danmu.txt', 'a+', encoding='utf-8')as f:
    f.write(danmu+'\n')

if __name__ == '__main__':
  num = input('请输入需要查询的房间号:')
  getDanmu(num)

以上即为使用Python基于Selenium抓取斗鱼弹幕的完整内容。如需了解更多Python爬取斗鱼弹幕的相关资料,请持续关注本站其他技术文章。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表