Javascript 抓取使用firebase数据库的网页

Javascript 抓取使用firebase数据库的网页,javascript,python,web,firebase,firebase-realtime-database,Javascript,Python,Web,Firebase,Firebase Realtime Database,免责声明:我只是在实践中学习,我没有恶意 因此,我想获取本网站上列出的申请列表: 我在过去也做过类似的事情,但是使用的是更简单的网站;这一次,我在获取此网页背后的数据时遇到了问题 从一页到另一页的滚动速度非常快,为了了解网页的工作原理,我启动了一个数据包嗅探器并分析了流量。我注意到,在初始加载之后,即使我在浏览器中滚动2500条记录,服务器和客户端之间也不会交换流量。这怎么可能 无论如何。我的理解是,该网站正在从某种流加载数据,并通过Javascript呈现数据。我说得对吗 因此,我启动了chr

免责声明:我只是在实践中学习,我没有恶意

因此,我想获取本网站上列出的申请列表:

我在过去也做过类似的事情,但是使用的是更简单的网站;这一次,我在获取此网页背后的数据时遇到了问题

从一页到另一页的滚动速度非常快,为了了解网页的工作原理,我启动了一个数据包嗅探器并分析了流量。我注意到,在初始加载之后,即使我在浏览器中滚动2500条记录,服务器和客户端之间也不会交换流量。这怎么可能

无论如何。我的理解是,该网站正在从某种流加载数据,并通过Javascript呈现数据。我说得对吗

因此,我启动了chromium devtools,查看了“网络”选项卡,发现对以下地址发出了WebSocket请求:wss://s-usc1c-nss-123.firebaseio.com

此时,在谷歌搜索了一下之后,我尝试使用我在devtools窗口上看到的“v=5&ns=rowingapps”查询同一台服务器:

from websocket import create_connection
ws = create_connection('wss://s-usc1c-nss-123.firebaseio.com')
ws.send('v=5&ns=roaringapps')
print json.loads(ws.recv())
得到的答复是:

{u't': u'c', u'd': {u't': u'h', u'd': {u'h': u's-usc1c-nss-123.firebaseio.com', u's': u'JUL5t1nC2SXfGaIjwecB6G13j1OsmMVv', u'ts': 1476799051047L, u'v': u'5'}}}
我希望看到一个json响应,其中包含关于应用程序的原始数据等等。我做错了什么

非常感谢

更新


事实上,我刚刚发现该网站正在使用json加载其数据。我没有在迭代请求中看到它,可能是因为缓存,但在chromium中禁用它就成功了。

而Firebase数据库允许您读取/写入JSON数据。但它的SDK并不是简单地传输原始JSON数据,它们在传输数据的基础上还做了许多技巧,以确保高效、流畅的体验。W

你能得到的是Firebase的有线协议。该协议没有公开的文档记录,并且(如果你是新手)试图解开它会给你一段不愉快的时间

要在某个位置检索实际的JSON,最容易使用。您只需将
.json
附加到URL并针对该URL触发HTTP get请求即可实现

因此,如果从以下位置加载初始数据:

https://mynamespace.firebaseio.com/path/to/data
您可以通过对以下对象触发HTTP get来获取原始JSON:

https://mynamespace.firebaseio.com/path/to/data.json

谢谢你,弗兰克,现在我至少知道我在搞什么了:)我会看看这些文件,对我来说都是新的。