如何使用C#将网页的HTML转储到文本文件中?

时间:2015-02-03 07:06:53

标签: c# html html5

我正在开展一个项目,我需要能够以网站网址www.google.com为例,并在文本文件中获取html,以便单独解析,但我不知道如何这样做。

我知道有一种比我正在做的更简单的方法,但这是一个旨在增加使用和知识的项目。

4 个答案:

答案 0 :(得分:2)

使用WebClient

,只需将单个网址下载到文件即可轻松完成
using (var client = new WebClient())
{
    client.DownloadFile(url, filename);
}

比较棘手的是,很少有网页真正由单个HTML组成 - 大多数都会加载Javascript,或者使用 Javascript加载更多数据等。

在.NET 4.5及更高版本中,您可能希望使用HttpClient而不是WebClient - 尽管它是异步的(据我所知)并不提供任何相当DownloadFile一样方便,这就是你想做的事情。

答案 1 :(得分:0)

您可以尝试HtmlAgilityPack:

string Url = "http://something";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
string contents= doc.DocumentNode.OuterHtml;
File.WriteAllText("X:\abc\def.txt", contents);

答案 2 :(得分:0)

C#WebClient类可以帮助您实现这一目标:

using System;
using System.Net;
using System.IO;

    using (WebClient client = new WebClient())
    {
        string htmlCode = client.DownloadString("http://somesite.com/default.html");
        File.WriteAllText(@"c:\YourLocalFolder\somefile.txt", htmlCode);
    }

答案 3 :(得分:0)

如果所有其他文件,您可以使用WebBrowser控件在您的应用程序中运行IE,这会让页面上的jscript运行等。然后您可以从C#访问DOM。