久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python實現(xiàn)基于websocket協(xié)議的網(wǎng)絡(luò)爬蟲

 豫龍晏子ylyz 2019-01-30

WebSocket是一種在單個TCP連接上進行全雙工通信的協(xié)議,,簡單來說就是建立一個TCP長連接之后,,你可以服務(wù)器隨時可以給客戶端發(fā)送消息,客戶端隨時可以給服務(wù)器發(fā)送消息,,而以前只能是客戶端給服務(wù)器發(fā)送消息,,服務(wù)器返回消息。

websocket協(xié)議我們簡稱為ws,,ws的網(wǎng)絡(luò)爬蟲其原理和普通爬蟲沒有其他區(qū)別,,都是模擬客戶端與服務(wù)器進行對話,不同的是我們要用到websocket庫,。

測試網(wǎng)址是websocket官網(wǎng)提供的demo,,demos.kaazing.com/echo/index.html

python實現(xiàn)基于websocket協(xié)議的網(wǎng)絡(luò)爬蟲

我們抓包看看ws協(xié)議的通信特點:

python實現(xiàn)基于websocket協(xié)議的網(wǎng)絡(luò)爬蟲

一次連接雙向通信,在瀏覽器開發(fā)者工具中,,點擊ws數(shù)據(jù)包在彈出的詳情中點擊Frames,,這里面是通信的數(shù)據(jù)。知道了大致的工作原理以后我們來實現(xiàn)一個簡單的無驗證,、無加密內(nèi)容的ws爬蟲,,目標網(wǎng)址還是上面那個。

我們實現(xiàn)和目標網(wǎng)址之前的數(shù)據(jù)交互,,常見方法如下:

# -*- coding:utf-8 -*- import websocket url = 'ws://demos.kaazing.com/echo'ws = websocket.create_connection(url=url, timeout=15) ws.send('以字符串發(fā)送數(shù)據(jù)') # 以字符串發(fā)送消息ws.recv() # 接收消息,,如果無消息將會堵塞,直到15s超時等待結(jié)束 ws.send_frame('以幀形式發(fā)送數(shù)據(jù)') # 以幀形式發(fā)送數(shù)據(jù)ws.recv_data_frame() # 接收以幀發(fā)送的數(shù)據(jù) ws.send_binary('以二進制格式發(fā)送數(shù)據(jù)'.encode()) # 以二進制格式發(fā)送數(shù)據(jù) ws.send_close() # 向服務(wù)器發(fā)送關(guān)閉連接請求,傳入狀態(tài)碼及其原因 ws.close() # 關(guān)閉連接 ws = websocket.create_connection(url=url, timeout=15)ws.send('以字符串發(fā)送數(shù)據(jù)')30ws.recv()'以字符串發(fā)送數(shù)據(jù)'ws.send_frame('以幀形式發(fā)送數(shù)據(jù)')8data = ws.recv_data_frame()data(8, <websocket._abnf.ABNF object at 0x07FD4C90>)data[1].datab'\x03\xea'

看似很簡單,,但在實際中會伴隨著很多通信的加密,,這個需要在具體問題中具體分析,主要就三個方面:建立ws連接、發(fā)送消息,、接收消息,。

ws的應(yīng)用在即時性較強的信息傳播行業(yè),如股票,、彩票,、賽事、通信中用的很普遍,,但是其難度并不大,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約