一个可以用来站内检索的简单爬虫

  昨晚一时兴起,感觉那个课程实验可以用来进行站内检索,于是搞到临晨三点多,实现了一个简单的可以用来进行站内检索的小爬虫。

 

  站内检索,顾名思义,是用来对特定域名范围内进行检索。主要困难在于获得特定域的多个网址。针对这个问题,我采用了从一个网址发散,来不断爬取新的url,最终获得针对特定域的众多网址。

 

  程序的主要思想是:先从一个网页(通常选主页)开始,爬取其包含的相关链接(当然跟指定域相关),然后继续对这些页面进行分析,如此不断进行深度爬取。我这个程序只爬取了三层,输入是一个主页,输出是count数目的url。

 

  核心代码如下:

   Regex regex = new Regex("href=/"http.*?xjtu.edu.cn.*?/""); MatchCollection url = regex.Matches(html);string oneurl = url[j].Value.ToString(); string tempurl = oneurl.Replace("href=/"","").Replace("/"",""); try { pageData = client.DownloadData(tempurl); html = Encoding.UTF8.GetString(pageData); } catch(Exception e) { html = ""; } 

 

程序比较简单,就不解释了。重要的是它的思想:从一个网页开始爬取,然后获取整个域的urls。这个程序比较初级,效率不高,后期加上线程机制,就更好了,这个以后有空再修改吧。这个程序的流程值得借鉴,它可以用来从指定域爬取url,然后分析相应网页,获得指定查询内容相关的结果作为检索结果展示出来。

你可能感兴趣的:(html,exception,String,url,regex)