Dynamic 永远爬行

Dynamic 永远爬行,dynamic,seo,bots,web-crawler,Dynamic,Seo,Bots,Web Crawler,我最近正在开发一个新的web应用程序来处理重复发生的事件。这些事件可以每天、每周或每月重复发生 这一切都很好。但当我开始创建活动浏览器页面(公众互联网可以看到)时,我突然想到了一个想法 如果一个爬虫点击这个页面,用下一个和上一个按钮浏览日期,它会永远继续吗?所以我选择不使用一般的HTML链接,而是使用AJAX。这意味着机器人将无法跟踪链接 但是,这种方法意味着,对于没有Javascript的用户,我将失去任何功能。还是说没有Javascript的用户数量太少而不必担心 有没有更好的方法来处理这个

我最近正在开发一个新的web应用程序来处理重复发生的事件。这些事件可以每天、每周或每月重复发生

这一切都很好。但当我开始创建活动浏览器页面(公众互联网可以看到)时,我突然想到了一个想法

如果一个爬虫点击这个页面,用下一个和上一个按钮浏览日期,它会永远继续吗?所以我选择不使用一般的HTML链接,而是使用AJAX。这意味着机器人将无法跟踪链接

但是,这种方法意味着,对于没有Javascript的用户,我将失去任何功能。还是说没有Javascript的用户数量太少而不必担心

有没有更好的方法来处理这个问题


我还非常感兴趣的是,像Google Crawler这样的机器人是如何检测这些黑洞的,以及它是如何处理这些黑洞的?

在页面或不想被爬网的单个链接上添加一个
nofollow
标记。这可以在
robots.txt
或页面源代码中找到。见


您可能仍然需要考虑如何抵御不遵守标准的行为不端的机器人。

即使是功能最低的网络爬虫程序也需要比您想象的复杂得多的复杂性,您描述的情况也不是问题。爬虫在广度优先搜索的某些变体上运行,所以即使它们不做任何事情来探测黑洞,也没什么大不了的。网络爬虫的另一个典型特性是,它们避免在短时间内从同一个域获取大量页面,因为否则它们会无意中对带宽小于爬虫的任何站点执行DOS攻击


尽管对于爬虫来说,探测黑洞并不是绝对必要的,但是一个好的爬虫可能会有各种各样的启发式方法来避免在低价值的页面上浪费时间。例如,它可能会选择忽略没有最低数量的英文(或任何语言)文本的页面,只包含链接的页面,似乎包含二进制数据的页面,启发法并不一定是完美的,因为搜索的基本广度优先性质确保了没有一个网站可以浪费太多爬虫的时间,而网络的巨大规模意味着,即使它错过了一些“好”页面,也总是有很多其他好页面可以找到。(当然,这是从网络爬虫的角度来看的;如果你拥有被跳过的页面,这对你来说可能是一个更大的问题,但像谷歌这样运行网络爬虫的公司故意隐瞒这类事情的确切细节,因为他们不希望人们试图猜出他们的启发。)

是的,我确实想到了。但正如你提到的,我仍然对“行为不端”的机器人有问题。当他们不断下载时,我一直在为带宽付费……一个常见的技巧是设置一个机器人陷阱——将一些不可见的链接标记为
nofollow
,然后设置一个规则,从任何超过某个特定阈值的IP地址丢弃TCP数据包(可能比一个更大,以便让无辜的人类旁观者探索几个链接)。啊,喜欢这个想法。这很好,因为我当时可以让日历爬网!最终使用了这个建议。谢谢!非常感谢你的洞察力。使用了上面提到的解决方案,所以将赏金授予它。但我会把它给你们两个!