python基于selenium爬取斗鱼弹幕

时间:2022-11-22 12:12:33

针对弹幕的爬取我们如果只需要获取看到的网页里面的而数据,使用selenium就能实现,对于直播平台来说,往往有第三方平台api让你获取数据(可以获取发弹幕,发弹幕者的名字礼物等等,这需要客户端向弹幕服务器发送登录请求,心跳信息的发送等等)只获取弹幕信息储存到txt文件中,上代码,上图片

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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基于selenium爬取斗鱼弹幕的详细内容,更多关于python 爬取斗鱼弹幕的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/Martinaoh/p/14265300.html