javascript - 是否存在一种让爬虫忽略部分文档的方法?

标签 javascript html seo web-crawler

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

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

  • 首先,我考虑使用 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; ?>";

关于javascript - 是否存在一种让爬虫忽略部分文档的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442402/

相关文章:

javascript - 引用错误 : URL is not defined in Azure javascript function

c# - ASP.Net 控件 ID 是否不利于 SEO 和页面大小?

url - 多语言 URL 对 SEO 的影响

javascript - 过滤包含一些文本的 PHP 数据表

javascript - 检测细节元素的打开或关闭

javascript - 用对 Angular 线拆分两个 div 文本

Wordpress - 带 block 的自定义页面 - 禁止 block 的google seo索引

javascript - jQuery Accordion 打开后立即关闭

javascript - WHILE 循环内的 GM_xmlhttpRequest

javascript - Three.js - 网格、三 Angular 形和 Lambert Material