我正在尝试从网站进行数据抓取过程自动化,该网站进行服务器端数据提取并按需加载数据(向下滚动浏览该表)。通过进行一些搜索和通过DevTools查看其网站代码,我了解到this functionality被用于使用JS和ajax将数据推入表中。从服务器提取数据的api链接很可能位于php脚本中,无法获取。
我想知道是否有可能以某种方式自动执行此提取过程(Python / R),这样我就不必手动滚动数小时并将数据复制粘贴到Excel文件中?
答案 0 :(得分:1)
https://www.deribit.com/使用Web套接字提取数据,不涉及Ajax。到达表的末尾时,将触发一个事件,触发该功能:
// found in btc-options.js
scrollTradesC: function () {
var box = $('#tradesScrollC'), t;
if (isTradesScrollingC) {
return;
}
if (box.scrollTop() + box.innerHeight() >= 0.7*box[0].scrollHeight) {
isTradesScrollingC = true;
t = lastTradeCallId;
if (t != 0) {
reMoreTradesCall(t);
} else {
reMoreTradesCall(0);
}
}
}
接下来,reMoreTradesCall
函数将运行:
reMoreTradesCall = function(data)
{
if (validateSources([]))
ws.send(enc(tuple(atom('pickle'), bin('document'), bin('... my token ...'), utf8_toByteArray(JSON.stringify(data)))));
else
console.log('Validation Error');
}
您可以在main_bullet.js
在Web检查器的“网络”选项卡下观察v2/
网络连接,以查看请求和响应帧有效负载。
相关请求URL为wss://www.deribit.com/ws/api/v2/
,方法为public/get_trade_volumes
。