Python實時爬取鬥魚彈幕

2021-09-10 03:32:44 字數 1169 閱讀 7499

輸入鬥魚房間號實時獲取彈幕資訊,實現效果如下:

建立連線

通過tcp協議連線到彈幕伺服器;

向彈幕伺服器傳送登入請求,登入彈幕伺服器,訊息格式type@=loginreq/roomid@=房間號/,不需要賬號密碼;

登陸成功之後伺服器會給你返回乙個登入成功資訊,這部分不用管,繼續向伺服器傳送乙個進入彈幕分組請求,格式type@=joingroup/rid@=房間號/gid@=-9999/,gid使用-9999就好,表示海量彈幕模式;

接下來接收訊息就好了,當然伺服器返回的不止彈幕資訊,還包括禮物/特殊人物進入房間等訊息,這部分可以通過返回訊息的type進行判斷,選擇自己需要的就好,詳細的參見文件;

心跳訊息

# -*- coding:utf-8 -*-

import socket

import re

import time

import struct

import threading

def connect():

'''第三方客戶端通過 tcp 協議連線到彈幕伺服器(依據指定的 ip 和埠);

第三方接入彈幕伺服器列表:

'''print '-----*-----douyu_spider-----*-----\n'

host = socket.gethostbyname("openbarrage.douyutv.com")

port = 8601

global s

s = socket.socket(socket.af_inet, socket.sock_stream)

s.connect((host,port))

def send_msg(msg):

data_length = len(msg) + 8

code = 689

msghead = struct.pack('鬥魚提供的文件已經是一年前的了,裡面傳回的訊息內容增加了不少,但整體邏輯還是沒變,我這邊只取了彈幕裡面的暱稱和文字內容,其他的訊息各位可以先列印出來看了再寫正規表示式去匹配就好。

鬥魚彈幕資料爬取

主要參考鬥魚的文件 dev bbs.douyutv.com forum.php?m 通過socket與彈幕伺服器建立連線 第三方接入彈幕伺服器列表 複製 協議組成 訊息長度 4 位元組小端整數,表示整條訊息 包括自身 長度 位元組數 訊息長度出現兩遍,二者相同 訊息型別 2 位元組小端整數,表示訊息...

Python3 呼叫鬥魚開放API爬取彈幕

一些要求具體參考鬥魚的開放api協議。coding utf 8 import socket import re import time import struct from multiprocessing import process 根據鬥魚開放api協議,鏈結所必需的一些東西。url openb...

爬取B站彈幕

最近幾天學習爬蟲,便爬取了b站的彈幕,本篇博文記錄的是爬取彈幕的方法一,近期會更新方法二。下面是流程 點開這個包是這個形式的 這裡面就有明文的彈幕,但通過requests獲得的response是經過utf 8編碼加密過的,想要獲得彈幕內容還要解密。下面附 from bs4 import beauti...