午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

python - 如何爬取登錄后的socket連接

瀏覽:134日期:2022-08-13 11:11:43

問題描述

需要爬取一個登錄以后的socket連接,這個socket會不定期的傳數(shù)據(jù)到網(wǎng)頁上,然后我目前只能通過不斷刷新網(wǎng)頁去完成,有沒有什么好的辦法可以去爬取需要網(wǎng)頁登錄后的socket呢?

===繼續(xù)描述:

已實現(xiàn)的部分

模擬登錄 (selenium模擬登錄)

偽造UA,刷新cookies,刷新sessionID(通過不停的登錄登出換cookie,定時結(jié)束webdriver再重啟來刷新sessionID)

通過Xpath 來獲取頁面的數(shù)據(jù)(lxml)

想要的結(jié)果(未實現(xiàn))

他的socket數(shù)據(jù)是這樣傳給瀏覽器的,我就是想用python搞個socket client接進這個socket,然后等服務器推給我數(shù)據(jù).python - 如何爬取登錄后的socket連接

抽象化的問題

總的來說,爬一個時間點的數(shù)據(jù)并不困難,但是對于長連接的持續(xù)爬蟲,持續(xù)監(jiān)控,響應式監(jiān)控我在網(wǎng)上找不到好的辦法,如果是設置定時任務去爬蟲,則當采樣周期過小的時候(小于1秒),則運算等成本過高且容易被封掉,有沒有什么好的辦法呢

問題解答

回答1:

HTTP是無狀態(tài)的,所以你的登陸以后狀態(tài)是通過傳給服務器一個或多個特殊值(一般在報文頭的cookie字段里)來確定的。抓一下HTTP包,然后模擬時帶上這些特殊值就OK了。

更新內(nèi)容:看到它Status Code了,這應該是將連接換成websocket了,那么這個頁面一定是對方來提供的了。你可以看一下頁面的源碼,應該會有var ws = new WebSocket('ws://ip:3000'); 之類的內(nèi)容。看一下對方客戶端的要求,然后改寫ws.onmessage回調(diào)函數(shù),這個函數(shù)的話內(nèi)容就任你拿捏了,你可以用它來判斷返回了新內(nèi)容或者再去請求另一個服務器來處理這些新內(nèi)容。你可以看一下這篇文章 網(wǎng)頁實時聊天之PHP實現(xiàn)websocket 的客戶端部分,試著修改來實現(xiàn)你的需求。

回答2:

找個websockt客戶端庫連就好了啊

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: www.com欧美| 日韩中文字幕在线视频 | 中文字幕精品一区 | 精品国产欧美一区二区三区成人 | 中文字幕第50页 | 草视频在线 | 在线视频麻豆 | 在线精品免费视频 | 欧美网站在线观看 | 在线免费中文字幕 | 黄色大片视频网站 | 三级在线视频 | 超碰在线免费播放 | 97视频总站| 日韩精品福利 | 欧美一区一区 | 日韩免费在线视频观看 | 人人插人人舔 | 久久调教 | 欧美成人三级视频 | 久久国产高清 | 亚洲综人网 | 韩国中文字幕hd久久精品 | 99精品视频在线播放免费 | 亚洲自拍小说 | 国产美女福利 | 久久福利一区 | 欧美黑人一级爽快片淫片高清 | 丁香婷婷激情 | 久久国产精品网站 | 亚洲激情自拍 | 中文字幕av专区dvd | 91禁在线看 | 蜜臀久久99精品久久久久久 | 一区二区国产视频 | 日韩av成人在线观看 | 欧美黄色片免费看 | 色视频免费看 | 欧美日韩在线视频播放 | 成人看片黄a免费看视频 | 国产肥老妇视频 |