我很好奇是否可以使用纯(香草)javascript代码输入浏览器控制台,提取所有链接(第一页),然后模拟点击转到另一个页面,在那里提取链接并转到第三页。 提取链接意味着将它们写入控制台。
与1相同的问题,但转到另一个页面的链接只是一个更新页面部分的ajax调用,实际上并没有转到另一个页面。
P.S。所有链接都属于一个域。
任何想法如何基于纯javascript来完成?
例如,如果您访问Google并输入一些字词("示例"),则可以打开控制台并输入
var array = [];
var links = document.getElementsByTagName("cite");
for(var i=0; i<links.length; i++) {
array.push(links[i].innerHTML);
};
console.log(array);
显示网址数组(包含一些文字,但没关系)。
可以使用纯javascript自动从第1页到第3页重复3次?
P.S。我实际上应该在上面的代码中提取标签,所以标签我命名为&#34;链接&#34;。很抱歉混淆(这不会改变问题)。
再次感谢你。
答案 0 :(得分:2)
如果要将所有链接写入控制台,可以使用更具体的命令
FOR GOOGLES
// Firstly, you get all the titles
var allTitles = document.getElementById("ires").getElementsByTagName("h3");
for(var getTitle of allTitles ) { // For each title, we get the link.
console.log(getTitle.getElementsByTagName("a")[0].href)
}
然后,您只需要模拟导航的点击。
var navLinks = document.getElementById("nav").getElementsByTagName("a");
navLinks [navLinks.length-1].click() // Click on the "Next" button.
FOR ALL SITES
如果您想获取所有链接,只需执行相同的命令,获取您想要的div ID,只需要页面的某些部分,然后使用getElementsByTagName("a")
您可以了解如何使用XHR或其他来制作原始AJAX请求
在Google上找到的简单示例:
// jQuery
$.get('//example.com', function (data) {
// code
})
// Vanilla
var httpRequest = new XMLHttpRequest()
httpRequest.onreadystatechange = function (data) {
// code
}
httpRequest.open('GET', url)
httpRequest.send()