2010-04-21 84 views
0

我有一個頁面'PageA',它有大約20個鏈接。每個鏈接都會導致不同的頁面。檢測URL並從中下載內容

如何以編程方式訪問PageA上的所有鏈接,然後將每個頁面(20)下載爲.mht?

此外,是否有任何現有的應用程序呢?

+0

什麼是「mht」文檔? – zneak 2010-04-21 03:04:12

+0

http://en.wikipedia.org/wiki/MHTML – Veejay 2010-04-21 03:09:29

回答

2

我強烈建議使用HTML Agility Pack來解析頁面外的鏈接。這往往比正則表達式更強大。

HtmlDocument doc = new HtmlDocument(); 
doc.Load("PageA.htm"); 
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"]) 
{ 
    HtmlAttribute att = link["href"]; 
    //... 
} 

要僅選擇具有特定模式的超鏈接,您需要更新傳遞給SelectNodes方法的xpath表達式。例如。

.SelectNodes("//a[@href=\"abc.com/articles\""]) 
+0

我可以選擇不超鏈接,但只有這種格式http://abc.com/articles/ – Veejay 2010-04-21 05:07:39

0

您可以使用正則表達式搜索所有鏈接,然後使用WebClient類的實例下載內容。這裏有一個例子http://dotnetperls.com/scraping-html(我沒有嘗試過,只是在互聯網上找到)。

希望它有幫助。