我正在开展一个项目,我需要能够以网站网址www.google.com
为例,并在文本文件中获取html,以便单独解析,但我不知道如何这样做。
我知道有一种比我正在做的更简单的方法,但这是一个旨在增加使用和知识的项目。
答案 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。