当前位置:  开发笔记 > 编程语言 > 正文

使链接完全不可见?

如何解决《使链接完全不可见?》经验,为你挑选了1个好方法。

我很确定很多人都想过这个,但由于某些原因我无法使用Google和StackOverflow搜索找到它.

我想将一个看不见的链接(由robots.txt列入黑名单)到一个CGI或PHP页面,它将"陷阱"恶意机器人和蜘蛛.到目前为止,我已经尝试过:

    身体中的空链接:

    
    

    这大部分时间都很好用,有两个小问题:

    问题:链接是文档正文的一部分.即使用鼠标几乎无法点击,一些访问者仍然无意中击中了键盘 - 用Tab和导航网站Enter.此外,如果他们将页面复制粘贴到文字处理器或电子邮件软件中,例如,陷阱链接被复制,有时甚至可以点击(某些软件不喜欢空标签并将href复制为文本的内容)标签).

    体内隐形块:

    这解决了键盘导航的问题,至少在我测试的浏览器中.从页面的正常显示中有效地无法访问该链接,而对于大多数具有当前智能水平的蜘蛛机器人仍然完全可见.

    问题:链接仍然是DOM的一部分.如果用户复制粘贴页面的内容,则会再次出现.

    内部评论栏:

    
    

    这有效地从页面的DOM中删除了链接.从技术上讲,注释仍然是DOM的一部分,但它实现了合规用户代理不会生成A元素的预期效果,因此它不是实际链接.

    问题:现在大多数蜘蛛机器人都足够聪明,可以解析(X)HTML并忽略评论.我个人看到机器人使用Internet Explorer COM/ActiveX对象来解析(X)HTML并通过XPath或Javascript提取所有链接.这些类型的机器人不会陷入跟踪陷阱超链接.

直到昨晚我才使用方法#3,当时我被一群机器人击中,这些机器人似乎对他们所遵循的链接非常有选择性.现在我回到方法#2,但我仍然在寻找一种更有效的方法.

我错过了任何建议,或其他不同的解决方案?



1> Sander Rijke..:

像你说的那样添加它:


然后用javascript/jQuery删除它:

$('#trap').remove();

垃圾邮件机器人不会执行javascript并看到该元素,几乎任何浏览器都会删除该元素,因此无法点击它

编辑:最简单的非jQuery方式是:

然后用javascript删除它:

var parent = document.getElementById('trapParent');
var child = document.getElementById('trap');
parent.removeChild(child);

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有