网站中的层次结构

时间:2011-06-28 10:23:51

标签: ruby-on-rails ruby theory hierarchy web-crawler

我不确定这个问题是否只有一个答案,甚至是一个简洁的答案,但是我想我会问的不是。问题不是语言特定的,但可能有某种伪算法作为答案。

基本上我正在努力了解蜘蛛是如何工作的,而且我可以告诉我没有蜘蛛我找到了管理层次结构。他们只列出内容或链接,但没有订购。

我的问题是:我们查看网站,可以直观地确定哪些链接是导航,内容相关或网站外部。 我们怎么能自动化呢?我们怎样才能在语法上帮助蜘蛛确定父母和子页面。

当然,第一个答案是使用URL的目录结构。 例如www.stackoverflow.com/questions/spiders 蜘蛛是问题的孩子,问题是基地的孩子等。 但是现在层次结构通常是平的,在URL中引用了ID。

到目前为止,我对这个问题有2个答案,并希望得到一些反馈。

1:发生。

所有页面中出现次数最多的链接都会被称为导航。这似乎是最有前途的设计,但我可以看到问题突然出现动态链接和其他,但它们似乎微不足道。

2:深度。

示例是我需要多少次点击网站才能访问某个页面。这似乎是可行的,但如果在主页上公布了一些实际位于底层的信息,则会将其确定为顶级页面或节点。

所以有人对如何在链接中建立蜘蛛判断层次结构有任何想法或建设性的批评。


(如果有人真的很好奇,蜘蛛的后端部分很可能是Ruby on rails)

1 个答案:

答案 0 :(得分:1)

你的目标是什么?如果您想抓取较少数量的网站并为某种聚合器提取有用的数据,最好建立专注的抓取工具(为每个网站编写抓取工具)。

如果你想抓取数百万页......那么你必须非常熟悉AI的一些高级概念。

您可以从这篇文章开始http://www-ai.ijs.si/SasoDzeroski/ECEMEAML04/presentations/076-Znidarsic.pdf