C# 将网页html下载到html文档中
我想得到一个网页的html。对于这个html,有两个元素是我想要阅读的xpath。我对这个话题几乎一无所知 在搜索时,我不断看到示例,但是它们加载url并将html放入字符串中。然而,我相信既然我有两个xpath,那么最好将网页的html作为html文档而不是字符串下载,或者我错了吗C# 将网页html下载到html文档中,c#,html,.net,C#,Html,.net,我想得到一个网页的html。对于这个html,有两个元素是我想要阅读的xpath。我对这个话题几乎一无所知 在搜索时,我不断看到示例,但是它们加载url并将html放入字符串中。然而,我相信既然我有两个xpath,那么最好将网页的html作为html文档而不是字符串下载,或者我错了吗 using (WebClient client = new WebClient()) { string s = client.DownloadString(url); } 那么,如何将网页的html下载到
using (WebClient client = new WebClient()) {
string s = client.DownloadString(url);
}
那么,如何将网页的html下载到可以搜索的html文档中?您可以使用StreamWriter将下载的数据写入文件:
string s = string.Empty;
using(WebClient client = new WebClient())
{
string s = client.DownloadString(url);
}
using (FileStream fs = new FileStream("test.html", FileMode.Create))
{
using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
{
w.WriteLine(s);
}
}
我就是这样做的 所以首先在字符串变量中定义url。 然后使用HttpWebRequest类下载字符串。 我使用HtmlAgilityPack,所以您应该使用Nugger将其包含在项目中。 创建HtmlDocument的对象,并将数据加载到此对象。 现在,您可以浏览HtmlDocument
可能重复的@mason我应该添加我想这样做没有使用任何第三方代码。我不能在我的工作场所下载第三方的东西。你能提供一些关于XPath查询的信息吗?@levent我从这个问题中得到了XPath的想法,这很愚蠢。为什么不使用一个专门用于此任务的库呢?您已经询问了如何将html下载到一个文件中,然后否决了我的答案,该答案包含确切的信息,即使不使用任何外部库?不是很酷。最好将网页的html作为html文档下载-他试图说他需要了解如何将html文档解析为可通过xpath搜索的结构化文档。我同意这个问题的提法很差。
string urlAddress = "url.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string data = "";
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
}
data = readStream.ReadToEnd();
response.Close();
readStream.Close();
}
HtmlDocument document2 = new HtmlAgilityPack.HtmlDocument();
document2.LoadHtml(data);