日期:2014-05-17  浏览次数:21085 次

抓取全站的URL
要做WINFORM的一个小软件,输入网址,可以抓取该网站全站的所有超链接(首先抓取该页的所有超链接,然后循环判断这些超链接是否是属于本站的链接,如果属于继续进行抓取,直到把整个网站的URL都抓取出来)现在有个问题就是速度很慢,光是专区一个页面的超链接就要好几秒,跟不要说循环判断这些链接然后再抓取了,听说要用多线程,但是不知道怎么用?用在哪块地方?PS:抓取超链接是用正则表达式抓取的,感觉就是在获取这个网址的源代码的时候比较慢

------解决方案--------------------
http://topic.csdn.net/u/20120818/12/8233f600-3601-4792-b104-9d45a225cc56.html这个是复制图片的,正则正在学习中,应该差不多原理,至于如何根据网址就能全选和复制的操作代码关注。。。。。。
------解决方案--------------------
正则匹配效率的高低关键在于回溯次数,因此请确保最少的回溯

另外,我想如何利用HtmlDocument来解析的话,效率应该是比较高的

C# code
 WebBrowser webb = new WebBrowser();
            webb.Navigate("about:blank");
            HtmlDocument htmldoc = webb.Document.OpenNew(true);
            htmldoc.Write(Htmlstring);
            HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("a");

            foreach (HtmlElement link in htmlTR)
            {  
               //.....
            }