2010-04-21 79 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(我没有尝试过,只是在互联网上找到)。

希望它有帮助。