有一个网页,我想刮一些信息。
我从收集一堆HTML元素开始。
var theSearch = document.getElementsByClassName('theID');
然后,我将HTML集合转换为数组。
var arr = Array.prototype.slice.call( theSearch );
现在是棘手的部分。
我想向下滚动页面,并抓住页面上出现的新项目。
window.scrollTo(0, document.body.scrollHeight);
如何访问新插入的DOM节点?
var theSearch2 = document.getElementsByClassName('theID');
......并将其放入新的数组中......
var arr2 = Array.prototype.slice.call( theSearch );
......然后将项目从arr2
推到arr
,就像......
arr.push(...arr2);
如何实现一个持续的过程,不断地进行抓取,直到没有新的项目被追加到页面的DOM中。
2条答案
按热度按时间h9a6wy2h1#
突变观察者
MutationObserver接口提供了监视对DOM树所做更改的能力。
试试这个:
第一次
smdnsysy2#
OP可以查看
MutationObserver
。每当新项目被渲染到DOM中时(由滚动触发),观察者的callback
接收OP可以对其进行操作的MutationRecord
示例的列表。第一个