我已经计划编写一个很棒的SEO工具,我想知道如何从静态/动态网站链接中找到页面。从链接中查找页面的技术
我将只有像www.yahoo.com这样的域名,我的系统应该找到该主机中存在的所有页面。
有没有什么技术可以做到这一点?我可以使用任何语言,但我认为.NET会真正推动事情。
我已经计划编写一个很棒的SEO工具,我想知道如何从静态/动态网站链接中找到页面。从链接中查找页面的技术
我将只有像www.yahoo.com这样的域名,我的系统应该找到该主机中存在的所有页面。
有没有什么技术可以做到这一点?我可以使用任何语言,但我认为.NET会真正推动事情。
我想你几乎肯定将不得不解析为引用的页面代码HREF =
使用System.WebRequest.Create(uri)
在响应流中,您可以请求的URL,然后正则表达式。
如果在.Net中有一个更简单的方法,我肯定会感兴趣。
除非有一个网站地图(大多数时间不存在),否则您不能只是“神奇地”找到域中存在的所有网页。
以下是你可以做的事 1.蛮力 - 这是一个坏主意,因为它只需要很长时间。 2.正则表达式源代码 - 查找标签内的正则表达式
2是您最好的选择,因为它将提供该页面上的所有链接。我会考虑添加一个递归功能,以便“蜘蛛”出来并在种子中找到的所有页面上执行相同的正则表达式操作。
这里是算法
页
开始从一个种子(即:www.yahoo.com)
在这个页面的源代码进行正则表达式,并存储在各个环节a 数据结构
在#2中找到的每个链接上递归调用#1。你可能想 此限制只在种子域住 链接(即:开始或 包含www.yahoo.com),以及不包括链接到你已经访问过
具有访问者设计模式的树型数据结构对于此类实现非常理想。
我知道这种方式,但不会留下任何页面上没有链接的一些页面吗? – Neutralizer