python基於selenium爬取鬥魚彈幕

針對彈幕的爬取我們如果隻需要獲取看到的網頁裡面的而數據,使用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 爬取鬥魚彈幕的資料請關註WalkonNet其它相關文章!

推薦閱讀: