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