【问题标题】:Scraping data streamed via web-sockets off website using phantomjs or node使用 phantomjs 或节点从网站上抓取通过 web-sockets 流式传输的数据
【发布时间】:2014-12-10 22:18:48
【问题描述】:

我想从网站上抓取数据。此数据在网站上的 HTML 画布上呈现并不断更新。据我了解,由于它或多或少是一个图形,因此无法从画布元素上刮取数据。但事实仍然是,这些数据正在流式传输到我的浏览器,因此使用 PhantomJS 或 NodeJS 等无头 JavaScript 引擎,我应该能够访问来自 Web 套接字的原始数据。 我已经使用 PhantomJS 抓取了网站,但我无法找到一种方法来获取通过网络套接字传来的原始数据。我正在使用 PhantomJS 加载页面,它已加载但显然页面打开了一个新连接以连接到源服务器上的 Web 套接字并开始接收提要。我的 PhantomJS 脚本如何挂钩?

谢谢。

【问题讨论】:

  • 坏消息是用 phantomjs 做起来会很困难,好消息是用 npmjs.com/package/ws 直接连接到 websocket 的 node.js 应该很容易做到。我会先检查 chrome 中的 WS 框架。
  • 谢谢 - 不知道是谁对这个问题投了反对票以及出于什么原因。

标签: javascript node.js websocket web-scraping phantomjs


【解决方案1】:

PhantomJS 1.x 不支持网络套接字。 PhantomJS 2 还没有出来。

如果该站点实际上在 PhantomJS 中运行,那么可能会有一些回退,在这种情况下,您可以使用 page.onResourceReceived 注册事件并抓取一些元数据。事件侦听器不公开资源数据。由于回退可能是有状态的,因此您实际上无法使用自定义 XHR 来抓取它。

【讨论】:

    猜你喜欢
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2017-05-12
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多