0

我知道您可以通过 robots.txt、元标记、链接属性等来控制爬虫/蜘蛛可以访问的文档。

但在我的特殊情况下,我只想忽略文档的一部分。该部分不能存在于 IFrame 中,而且是“正常”内容。像<noscript>块这样的东西会很棒,它将部分内容标记为“请不要索引这个”。

  • 首先,我想用document.write()写出那些部分,但我了解到我的假设“蜘蛛通常不执行 JavaScript”似乎是错误的。
  • 当我检测到爬虫时,我正在考虑提供不同版本的页面,但这不是很准确,对吧?
  • 另外,我不能将该内容放在图像上。

是否有任何技巧可以避免将文档的特定部分(不是散布在文档中的某些特定单词)编入索引?

[编辑]我知道我可以做一些“如果用户代理在机器人列表中”,但我不喜欢这个想法。可能有一种更不可知论的方法。要抑制的部分包含动态内容,无论我在做什么,它都必须与 IE6 等“旧”浏览器一起使用:\

4

1 回答 1

1

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

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";

在一些contenttoload.php

<?PHP 
  header("content-type:text/javascript");
  // load data from database
  $bla = .....;
  ?>
  document.getElementById("content").innerHTML="<? echo $bla; ?>";
于 2013-05-08T15:02:15.123 回答