【问题标题】:Generate Sitemap by URL using C#使用 C# 通过 URL 生成站点地图
【发布时间】:2012-05-03 09:53:45
【问题描述】:

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


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

【问题讨论】:

标签: c# generator sitemap


【解决方案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)存储。

希望对您有所帮助!

【讨论】:

  • 非常感谢!你给了我方向=)
  • 我认为您应该接受这个答案,或者您可以添加自己的答案并接受它
猜你喜欢
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 2015-08-11
  • 2015-01-31
  • 1970-01-01
相关资源
最近更新 更多