最近想爬取实时消息,上网查了下,所以爬取斗鱼直播的弹幕消息做了下练习,这个开源的代码有很多,但是具体是怎么爬取到的还是要仔细地研究下。想爬取斗鱼的弹幕消息,按照常用的做法是打开网页用抓包工具抓包,但是用抓包工具抓到的信息没有找到有关弹幕信息的接口。上网查找抓取教程,了解到斗鱼弹幕是基于TCP协议的,用我个人的话来说就是要通过基于TCP/UDP服务器协议抓包。
要想抓取弹幕信息就得,就得从斗鱼的服务器上抓取数据,想起之前学过的套接字socket,正好这里可以练习下怎么使用。抓取斗鱼服务器上的信息,也得按照斗鱼弹幕服务器的标准协议来连接。
https://max.book118.com/html/2017/0922/134705266.shtm这是斗鱼弹幕服务器的pdf文件。
下面附上代码,关于登录斗鱼服务器的具体讲解可以参考网上的博客有很多讲的都不错。
import socket
import re
import json
import requests
import time
import multiprocessing
from pymongo import MongoClient
#首先第一步建立与服务器的连接
# 初始化socket
# 利用socket库中的connect方法建立连接,connect方法中的参数Host通过ip地址来获取
global s
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = socket.gethostbyname("openbarrage.douyutv.com")
port = 8601
s.connect((host,port))
print('我已经连接上弹幕服务器了')
#第二步登录及进入房间
# 登录,客户端向弹幕服务器发送登录请求,登录弹幕服务器,弹幕服务器接受到客户端请求并完成登录后,