检测URL并从中下载内容

时间:2010-04-21 02:57:44

标签: c#

我有一个页面'PageA',上面有大约20个链接。每个链接指向不同的页面。

如何以编程方式访问PageA上的所有链接,然后将每个页面(20)下载为.mht?

还有现有的应用程序吗?

2 个答案:

答案 0 :(得分: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\""]) 

答案 1 :(得分:0)

您可以使用正则表达式搜索所有链接,然后使用WebClient类的实例下载内容。这是一个例子http://dotnetperls.com/scraping-html(我没有尝试过,只是在互联网上找到的。)

希望它有所帮助。