要抓取第三方页面内动态数据,遇到获取数据的方式是加密的,无法伪造,且不好确定数据加载完成事件,则可以用以下 2种js hijack的方法
1. 替换掉页面内原有的数据调用函数
<script language="javascript"> function doSomeQueryData() { do some query data ....; } let orgQuery = doSomeQueryData; doSomeQueryData = function() { orgQuery(); //数据加载完了,可以干活 } </script>
2. 注入一个onload事件函数
function autoReportXY() { for(i=0;i < 10;i++) { if (document.getElementsById("数据tag").length < 6){ sleep(1000); continue; } //数据加载完啦,干活。。。 } } function delayShow() { setTimeout(autoReportXY, 2000); } window.addEventListener("load", delayShow, false);