2014-12-10 79 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进行刮除。