2011-06-28 149 views
3

我不确定这个问题是否有单一的答案,或者对所有答案都是简洁的答案,但我认为我会问的不是那么少。问题不是语言特定的,但可能有某种伪算法作为答案。网站中的层次结构

基本上我想了解蜘蛛是如何工作的,并从我可以告诉任何蜘蛛,我发现管理层次。他们只列出内容或链接,但没有排序。

我的问题是这样的:我们看一个网站,并可以很容易地在视觉上确定哪些链接是导航,内容相关或外部网站。 我们如何自动化?我们如何能够从语法上帮助蜘蛛detemine父母和孩子页面。

当然,第一个答案是使用URL的目录结构。 E.g www.stackoverflow.com/questions/spiders 蜘蛛是问题的孩子,问题是基地网站的孩子等等。 但是现在的层次结构通常与URL中引用的id一致。

到目前为止,我有这个问题的2个答案,并会喜欢一些反馈。

1:发生。

在所有页面中出现最多的链接将被称为导航。这似乎是最有前途的设计,但我可以看到动态链接和其他问题出现的问题,但它们似乎很小。

2:深度。

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

所以有没有人有任何想法或如何使在链接蜘蛛法官层次建设性的批评。


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

回答

1

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

如果你想抓取的网页畅想......嗯比你一定很熟悉了AI的一些先进理念。

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

+0

开始是的,我不熟悉的AI。丝毫。内部应用程序旨在确定网站中的层次结构。不幸的是,对于寻找应用的人来说,这是非常主观的。最后,选项是根据你必须经历的页面来确定层次结构,才能得到另一个页面。我认为这很公平。其他人没有。在这种情况下构建重点抓取工具是不容置疑的。他们想要一个适合所有爬虫的尺寸。 – overtone

+0

只是觉得值得一提。即使谷歌有这样的问题。他们专注于它。 网站层次结构可以从格式正确的URL或bredcrump中提取出来。 但是,即使对于爬虫preffer http://schema.org/。 他们甚至不会猜测网站上的层次结构是什么。 – Grzegorz