Javascript document.querySelectorAll无法通过延迟加载获取页面上的所有元素

Javascript document.querySelectorAll无法通过延迟加载获取页面上的所有元素,javascript,jquery,web-scraping,Javascript,Jquery,Web Scraping,我正在尝试使用Firefox控制台下载以下网页上的音频文件:需要登录Facebook,抱歉 这是我正在使用的代码片段: var links = document.querySelectorAll('div._661- a[href]:not([href="#"]'); links.forEach( link => setTimeout(link.click(), 500) ); 问题是,即使我手动滚动加载页面上的所有1.7K项,querySelectorAll最多只返回40个元素。get

我正在尝试使用Firefox控制台下载以下网页上的音频文件:需要登录Facebook,抱歉

这是我正在使用的代码片段:

var links = document.querySelectorAll('div._661- a[href]:not([href="#"]');
links.forEach( link => setTimeout(link.click(), 500) );
问题是,即使我手动滚动加载页面上的所有1.7K项,querySelectorAll最多只返回40个元素。getElementsByTagName也是如此

我还尝试了var n=0;而n<20{window.scrollTo0,document.querySelector.uiScrollableAreaContent.scrollHeight;n++};避免使用鼠标滚轮手动滚动,但似乎没有什么作用


使用Javascript获取此类动态/延迟加载滚动页面上所有元素的最佳方法是什么?

是否重新运行var links=document.queryselectoral'div._661-a[href]:而不是[href=];部分?实现document很重要。QuerySelector只查看执行时的情况。因此,如果以后的结果不同,您需要按照Jaromanda X的建议重新运行这部分代码。您可以使用一个函数来实现这一点。所以document.querySelectorAll绝对不是实时的。不确定重新运行意味着什么,但我不这么认为。我加载页面,手动滚动到底部,然后打开控制台,执行var links=document.querySelectorAll…,然后执行links.length,返回40。我遗漏了什么吗?“我遗漏了什么吗?”-在DOM检查器中选择第一个div._661-元素,然后开始向下滚动,直到加载了两个新项目……您会注意到检查器将“焦点”切换到它“打开”的当前元素在某个时候,它将返回到父TD元素,这表示您最初选择的div._661已从DOM中删除。进一步查看,您将看到它们使用空TR元素作为tbody的第一个子元素和最后一个子元素,其高度为几百/千像素,以实现基本的“滚动”功能,但在这两者之间,保存实际数据的最大TR数始终为30。可能是因为性能原因……或者Facebook只是想让你更难获取所有这些信息。