站长平台一般提供对站点链接的诊断功能,以判断站点的某一个或某几个链接能否被正常使用。这个操作被认为可以主动吸引搜索引擎的蜘蛛爬取站点,所以一度被滥用。而平台也采取了对应的措施,比如百度就限制每个站点每周仅允许使用70次抓取诊断。
用于抓取诊断的链接并不是完整的站点链接,这个工具不需要提交站点的主域名部分,所以实际操作中,还需要从完整的网址中截取,因为是比较规律性的操作,不想挨个去复制,正好站点有现成的sitemap页面,就想偷个小懒,直接用js提取sitemap中靠前的几条链结尝试一下效果。
sitemap一般是xml格式的文件,这类文件也可以利用js方便的进行处理,按下f12打开浏览器的工作台,在console窗口中输入如下命令,就可以提取到所有“loc”标签所包裹的链接:
links = document.getElementsByTagName('loc');
上一条语句提取到的是包含标签的内容数组,如果仅需要其中某一个键值的文本数据,我们需要可以使用如下的命令:
links[1].textContent
成功提取到了链接,接下来我们需要分割获取到的文本,以获取去掉主域名之后的部分,因为本博客的域名后缀为“top”,所以就用“top/”来分割字符串:
inks[1].textContent.split("top/");
可以看到返回数组的第二部分就是我们所需要提取的字符串,因为一周最多只能提取70条,所以我们并不需要提取所有的链接,只需要提取比较靠前的几个链接就可以了,确定的单条数据的提取方式,现在来为js语句添加一个循环:
links=document.getElementsByTagName('loc');
for(i=0;i<80;i++){
res=links[i].textContent.split("top/");
console.log(res[1]);
}
最终获取到的结果如下: