[ad_1]
大家好。 我正在尝试从网站获取一些内容,html 页面显示多个页面的数据,每个页面内容包含 6 × 15 div 项目。
在这些 div 项目的底部,有 链接页面标签如上一页..第1页..第2页..第3页….下一页..,这些标签的属性“href”链接到不同的“location.href”。
我想在 F12 控制台上编写一段 javascript 代码来获取所有这些 div 项目信息。 我不确定是否有可能让它发挥作用。
我只知道BOM有一个全局对象,window,我正在跟踪这个全局对象的事件,希望在单击每个页面标签时捕获新页面加载事件,然后使用DOM文档获取div项。
我尝试过的:
代码是这样的:
JavaScript
window.addEventListener('load', () => { //1.fetch div items //for(var item of document.querySelectorAll('div.item')) {} //2.find next page label and click //var next_page = document.querySelector('a.next'); //next_page.click(); });
当我单击第一页标签时,尝试触发每个页面项更新的循环,同时,DevTool 控制台似乎更改为新的上下文,js 代码不起作用。
由于BOM窗口是全局对象,并且我没有打开新窗口,新页面内容加载在同一个窗口上,为什么当我点击页面标签时,窗口’load’事件没有在新内容页面中触发 ,这改变了location.href?
解决方案1
首先,未经网站所有者许可,这是不道德的,这可能会为了您的利益而给他的服务器增加压力!
要单击站点上的元素,您需要获取其元素 ID 并使用它来自动单击,在本例中为“a”元素来加载页面。 ‘a’ 元素包含在 id 为 ‘paginator’ 的 div 中,选择其中的每个元素并单击它 –
JavaScript
<script> window.addEventListener('load', function() { //Get all the 'a' elements inside the paginator div... var links = document.querySelectorAll('.paginator a'); //Iterate through each link and trigger a click event for each... links.forEach(function(link) { link.click(); }); }); </script>
[ad_2]
コメント