让代码更简单

当前位置:代码狗 > 开发教程 > C#开发教程 > 正文

C#实现查询网站地图中链接的收录情况源码分享

相信各位站长都很关心自己网站的收录情况,但是我们网站的内容很多,又不可能挨着搜索链接。我想很多朋友都是使用的爱站、火车头、网销客之类的工具查询网站链接的收录情况。今天给大家分享一篇通过C#实现查询网站地图中链接的收录情况的教程,教大家使用C#自己编写程序查询网站的收录情况。我仅以百度收录情况为例,如果你需要,完全可以自己加入谷歌、必应、搜狗、360等搜索引擎的收录情况在其中,还可以导出数据到excel表格中(本文没有写这个功能)。

C#实现查询网站地图中链接的收录情况源码分享

C#实现查询网站地图中链接的收录情况源码分享

开发环境:

  • visual studio 2012
  • .net框架4.0

没有开发环境的朋友也不用担心,文末的文件中有编译好的程序,双击即可运行。

C#解析网站地图xml文件

 XmlDocument xmlDoc = new XmlDocument();
 XmlReaderSettings settings = new XmlReaderSettings();
 settings.IgnoreComments = true;       //忽略文档里面的注释
 XmlReader reader = XmlReader.Create(url, settings);
 xmlDoc.Load(reader);
 XmlElement root = xmlDoc.DocumentElement;
 XmlNodeList listNodes = root.ChildNodes;
 foreach (XmlNode notes in listNodes)
 {
                foreach (XmlNode child in notes.ChildNodes)
                {
                    if (child.Name == "loc")
                    {
                         MessageBox.Show(child.InnerText);//这里就是网页地址
                     }
                }
}

GET方式请求百度

然后我们需要结合前面讲过的方法访问百度,实现get请求,具体实现代码在这篇文章中,复制即可使用。C#HttpWebRequest带cookies访问网页GET,里面的cookies不需要你可以去掉。

有了访问百度的方法,我们再看看百度搜索请求:

请求方式:get

请求地址:https://www.baidu.com/s

请求参数:wd=请求值

返回值:返回百度搜索请求值的网页源码

请求示例:https://www.baidu.com/s?wd=https://www.daimadog.com

我们注意到,搜索网页中有一个关于搜索结果数量的提示,如下图。所以我们只需要判断这个数量即可知道,我们的网页是否被收录。

C#实现查询网站地图中链接的收录情况源码分享

C#实现查询网站地图中链接的收录情况源码分享

正则匹配结果

匹配目标文本正则规则:

百度为您找到相关结果约([\w,]+?)个

使用上面的正则规则即可匹配出查询结果数量,为0即未收录。

 String html = Get("https://www.baidu.com/s?wd=" + child.InnerText, "", "UTF-8");
 MatchCollection mc = Regex.Matches(html, @"百度为您找到相关结果约([\w,]+?)个", RegexOptions.IgnoreCase);
 int slnum = 0;
 foreach (Match m in mc)
 {
     Console.WriteLine(m.Groups[1].Value);//收录数量
 }

其中的m.Groups[1].Value就是搜索结果数量,Get方法是前面文章中提到的方法,需要的请自行查看。还使用了dataGridView控件,为避免运行时UI卡顿,还使用了线程与委托,不清楚的可以查看这篇文章,C#线程与委托的简单使用,最终效果就和上面第一张图一样了。

注意:如果你没有开发环境,那么请确保你的电脑安装了.net框架4.0,否则将无法运行程序。编译好的EXE可执行程序在压缩包下WindowsFormsApplication2\WindowsFormsApplication2\bin\Debug目录中,WindowsFormsApplication2.exe文件就是,双击运行。

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏

评论 2

  1. #1

    我的才收录13个页面,就不用查了

    奶爸de笔记7个月前 (05-09)回复
    • 内容太少

      代码狗7个月前 (05-09)回复
×

请作者吃根烤肠!

支付宝