再会。我需要使用 C# 编写站点地图生成器。我已经为本地站点编写了生成器,您可以在其中输入项目(站点)的路径,我的程序将在此目录和子目录中找到所有网页,并将它们写入站点地图文件。
现在我需要做同样的事情,但对于 URL 路径。我输入的只是一个 URL 地址,我的程序必须找到该站点的所有网页并将它们写入站点地图。如何组织这样的页面搜索?或者可能有人做了类似的事情?提前感谢您的帮助。
您正在寻找的是网络爬虫或网站爬虫。本质上,他们所做的是获取您想要的任何网站的源代码,去除所有多余的 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)存储。
希望这可以帮助!