2014-12-10 82 views
1

我想從網站上刮掉數據。這些數據呈現在網站上的HTML畫布上並不斷更新。據我所知,無法從畫布元素中刪除數據,因爲它或多或少都是圖形。但事實是,這些數據正在流向我的瀏覽器,因此使用PhantomJS或NodeJS等無頭JavaScript引擎應該能夠訪問來自Web套接字的原始數據。 我已經使用PhantomJS刮過網站,但我無法找到通過網絡套接字訪問此原始數據的方法。我使用PhantomJS加載頁面,它被加載,但顯然頁面打開一個新的連接來連接到原始服務器上的Web套接字並開始接收一個訂閱源。我的PhantomJS腳本如何嵌入它?使用phantomjs或節點通過網絡流量通過網絡流量刮掉數據

謝謝。

+0

壞消息是用phantomjs很難做到這一點,好消息是使用https://www.npmjs.com/package/ws連接node.js應該很容易直接到websocket。我首先檢查一下chrome中的WS框架。 – generalhenry 2014-12-10 22:27:54

+0

謝謝 - 不確定誰低估了這個問題以及原因。 – Sid 2014-12-11 00:48:36

回答

0

PhantomJS 1.x不支持網絡套接字。 PhantomJS 2尚未出來。

如果該網站實際上在PhantomJS中工作,那麼可能會有一些回退,在這種情況下,您可以使用page.onResourceReceived來註冊一個事件並刮取一些元數據。事件偵聽器不公開資源數據。由於回退可能是有狀態的,因此實際上無法使用自定義XHR進行刮除。