使用C#按URL生成站点地图

时间:2012-05-03 09:53:45

标签: c# generator sitemap

美好的一天。我需要使用C#编写Sitemap的生成器。我已经为本地站点编写了生成器,您可以在其中输入项目(站点)的路径,我的程序将找到此目录和子目录中的所有Web页面,并将它们写入Sitemap文件。


现在我需要对URL路径做同样的事情。我要输入的只是一个URL地址,我的程序必须找到该网站的所有网页并将其写入Sitemap。我该如何组织这样的页面搜索?或者可能有人做了类似的事情?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您要找的是网页抓取工具或网站抓取工具。基本上,他们所做的是获取您想要的任何网站的源代码,删除所有多余的html标签,但不删除超链接标签。这将留下一堆链接,程序将使用这些链接“爬行”到更多页面上。以下是它如何工作的概述:(我不会给出任何代码,但我将深入介绍如何编写代码)

一个简单的网站:

<html>
<a href="www.somewebsite.com/link1.html">Link 1</a><br />
<a href="www.somewebsite.com/link2.html">Link 2</a><br />
<a href="www.somewebsite.com/link3.html">Link 3</a>
</html>

我们的程序将获取源代码,但将删除所有无用的标记,留下:

<a href="www.somewebsite.com/link1.html">Link 1</a>
<a href="www.somewebsite.com/link2.html">Link 2</a>
<a href="www.somewebsite.com/link3.html">Link 3</a>

然后它将获得href =“”属性,留下网站网址:

www.somewebsite.com/link1.html
www.somewebsite.com/link2.html
www.somewebsite.com/link3.html

然后程序将获取每个网站的源代码,一遍又一遍地做同样的事情。您可以更进一步,删除所有使用GET请求的链接,即:

www.somewebsite.com/link1?id=1

包含指向其他网站的链接。

一旦您访问了所有网站并获得了所有链接,您就可以以树状格式存储信息,可能是XML格式。

希望这有帮助!