4

我最近一直在构建一个处理重复事件的新网络应用程序。这些事件可以每天、每周或每月重复发生。

这一切都很好。但是当我开始创建事件浏览器页面(公共互联网可以看到)时,我想到了一个想法。

如果爬虫点击此页面,并带有下一个和上一个按钮来浏览日期,它会永远继续下去吗?所以我选择不使用通用 HTML 链接并使用 AJAX。这意味着机器人将无法访问链接。

但是这种方法意味着我失去了没有 Javascript 的用户的任何功能。还是没有 Javascript 的用户数量太少而无需担心?

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

我也对像 Google Crawler 这样的机器人如何检测到这样的黑洞以及它如何处理它们非常感兴趣?

4

2 回答 2

4

nofollow标签添加到页面或您不想抓取的各个链接。这可以在页面源中robots.txt或在页面源中。请参阅机器人排除标准

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

于 2012-11-13T08:58:45.260 回答
2

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

尽管爬虫检测黑洞并不是绝对必要的,但好的爬虫可能具有各种启发式方法,以避免在低价值页面上浪费时间。例如,它可以选择忽略没有最少英语(或任何语言)文本的页面、只包含链接的页面、似乎包含二进制数据的页面等。启发式算法不必是完美的,因为搜索的基本广度优先性质确保没有一个网站可以浪费太多爬虫的时间,而且网络的庞大规模意味着即使它错过了一些“好”的页面,总有很多其他好的页面可以找到。(当然这是从网络爬虫的角度来看的;如果你拥有被跳过的页面,这对你来说可能是一个更大的问题,

于 2012-11-19T19:28:13.567 回答