当前位置:首页 > 北京头条 > 北京经验

爬取斗鱼弹幕

2019-07-01 19:33:55 来源:163健康
浏览量:

这次爬取斗鱼弹幕,想的之后在对海量弹幕进行数据分析,作图做表。首先想的是打开斗鱼直播间,想从F12中看是否能找到相应的api,但是发现没有一个api是返回弹幕数据的,再检查HTML,发现弹幕数据是在li标签里一个一个动态加载上去的,但是找不到相应的js代码。后来百度之后才知道是flash的socket来获取数据的,遂跳入socket坑。看了斗鱼的协议文档,仿着代码敲出来却发现返回一对byte(unicode)数据,还要进行转换。但是数据回复码是错误的,后来改正后又发现没有数据返回,初步原因认为是没有加入传输心跳数据导致的,或者是数据阻塞。需要添加多进程

一、socket(客户端开发)1、TCP链接

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

2、链接

socket.connection(address)  address是元组(host,port)

3、获取数据

socket.recv(bufsize[,flag])

4、传输数据

socket.send(string[,flag])socket.sendall(string[,flag])

二、byte unicode utf-8 等编码1、Python 3的bytes/str之别文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。

string与bytes转换

2.int.from_bytes和int.to_bytes函数介绍int.from_bytes 将bytes转化为intint.to_bytes将int转化为bytes

三、多线程使用threading库

t1 = threading.Thread(target = xx,args = (xx,xx))t1.start()

四、IP代理在一次手贱的操作中,IP被斗鱼服务器限制了一次连接只能收到一个消息,所以着手进行IP代理操作。