我知道您可以通过robots.txt、元标记、链接属性等来控制爬虫/蜘蛛可以访问哪些文档。
但在我的特殊情况下,我希望文档的一部分被忽略。该部分不能存在于iframe中,而且是“正常”内容。类似于<noscript>块的东西会很神奇,将部分内容标记为“请不要索引此内容”。
首先,我考虑使用document.write()写出这些部分,但我了解到我的假设“蜘蛛通常不执行javascript”似乎是错误的。
当我发现一个爬虫的时候,我正在考虑提供一个不同版本的页面,但是这不是很准确,对吧?
而且,我不能把这些内容放在图片上。
有什么诀窍可以避免文档的某个特定部分(而不是文档周围的某些特定单词)被编入索引吗?
[编辑]我知道我可以做一些“如果用户代理在机器人列表中”,但我不喜欢这个想法。可能还有更不可知论的方法。要抑制的部分包含动态内容,无论我在做什么,它都必须与像ie6这样的“旧”浏览器一起工作:\

最佳答案

静态内容和动态内容之间的唯一区别是包含的文件扩展名:

var extension = "js"; // change to "php" for example to load dynamic content
function loadJS(filename){
  var js=document.createElement('script')
  js.setAttribute("type","text/javascript")
  js.setAttribute("src", filename)
  document.getElementsByTagName("head")[0].appendChild(js);
}
window.onload=function() {
  loadJS("somecontenttoload."+extension); // hard for crawlers to read
}

在someContentToload.js中:
document.getElementById("content").innerHTML="This is static";

在somecontenttoload.php中
<?PHP
  header("content-type:text/javascript");
  // load data from database
  $bla = .....;
  ?>
  document.getElementById("content").innerHTML="<? echo $bla; ?>";

10-05 20:50
查看更多