2011-06-19 22 views
-3

我已经计划编写一个很棒的SEO工具,我想知道如何从静态/动态网站链接中找到页面。从链接中查找页面的技术

我将只有像www.yahoo.com这样的域名,我的系统应该找到该主机中存在的所有页面。

有没有什么技术可以做到这一点?我可以使用任何语言,但我认为.NET会真正推动事情。

回答

0

我想你几乎肯定将不得不解析为引用的页面代码HREF =

使用System.WebRequest.Create(uri)在响应流中,您可以请求的URL,然后正则表达式。

如果在.Net中有一个更简单的方法,我肯定会感兴趣。

+0

我知道这种方式,但不会留下任何页面上没有链接的一些页面吗? – Neutralizer

0

除非有一个网站地图(大多数时间不存在),否则您不能只是“神奇地”找到域中存在的所有网页。

以下是你可以做的事 1.蛮力 - 这是一个坏主意,因为它只需要很长时间。 2.正则表达式源代码 - 查找标签内的正则表达式

2是您最好的选择,因为它将提供该页面上的所有链接。我会考虑添加一个递归功能,以便“蜘蛛”出来并在种子中找到的所有页面上执行相同的正则表达式操作。

这里是算法

  1. 开始从一个种子(即:www.yahoo.com)

  2. 在这个页面的源代码进行正则表达式,并存储在各个环节a 数据结构

  3. 在#2中找到的每个链接上递归调用#1。你可能想 此限制只在种子域住 链接(即:开始或 包含www.yahoo.com),以及不包括链接到你已经访问过

具有访问者设计模式的树型数据结构对于此类实现非常理想。

相关问题