C# 使用c从url创建xml站点地图#
我正在尝试创建一个实用程序,它将使用c#创建一个xml站点地图。我可以将它指向本地文件夹,并生成显示在浏览器中的结果,但当我将它指向网站时遇到了问题。任何提示或提示将不胜感激!我对c比较陌生C# 使用c从url创建xml站点地图#,c#,xml,sitemap,C#,Xml,Sitemap,我正在尝试创建一个实用程序,它将使用c#创建一个xml站点地图。我可以将它指向本地文件夹,并生成显示在浏览器中的结果,但当我将它指向网站时遇到了问题。任何提示或提示将不胜感激!我对c比较陌生 static void Main(字符串[]args) { //字符串sDir=@“WWW.WEBSITE.COM”;网络不是一个文件系统。我认为你没有完全理解你试图实现的目标的复杂性。你必须编写一个网络爬虫程序,它基本上是一个HTTP客户端,它读取给定的URL,搜索内部链接,然后递归地对每个链接进行
static void Main(字符串[]args)
{
//字符串sDir=@“WWW.WEBSITE.COM”;网络不是一个文件系统。我认为你没有完全理解你试图实现的目标的复杂性。你必须编写一个网络爬虫程序,它基本上是一个HTTP客户端,它读取给定的URL,搜索内部链接,然后递归地对每个链接进行爬网。你必须考虑广度优先,深度优先爬网、规范URL、可能的蜜网(反复产生相同内容的URL,导致爬网程序卡住等),递归限制等。这不是一项琐碎的任务!我现在意识到了这一点。我刚刚开始处理互联网。我的部分缺点是没有认识到我所做的与TyCobb指出的网络之间的差异。我真的非常感谢你的帮助!
static void Main(string[] args)
{
//String sDir = @"WWW.WEBSITE.COM";<---I'd like to index a site rather than a file.
String sDir = @"FOLDER_LOCATION";
String siteMap = @"FOLDER_LOCATION\sitemapworking.xml";//Where I'd like to save the sitemap
var sb = new System.Text.StringBuilder();
String[] allfiles = System.IO.Directory.GetFiles(sDir, "*", System.IO.SearchOption.AllDirectories);
String[] alldirects = System.IO.Directory.GetDirectories(sDir, "*", System.IO.SearchOption.AllDirectories);
sb.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset>");
sb.AppendLine("<url>\n\t<loc>" + sDir + "</loc>\n</url>");
foreach (string s in alldirects)
{
sb.AppendLine("<url>\n\t<loc>" + s + "</loc>\n</url>");
}
foreach (string s in allfiles)
{
System.IO.FileInfo file = new System.IO.FileInfo(s);
sb.AppendLine("<url>\n\t<loc>" + s + "</loc>\n\t<lastmod> " + file.LastWriteTime + "</lastmod>\n</url>");
}
sb.AppendLine("</urlset>");
File.WriteAllText(siteMap, sb.ToString());
}