Как я могу получить источник HTML, заданный веб-адресом в С#?
Как загрузить HTML-источник в С#
Ответ 1
Вы можете загружать файлы с помощью класса WebClient:
using System.Net;
using (WebClient client = new WebClient ()) // WebClient class inherits IDisposable
{
client.DownloadFile("http://yoursite.com/page.html", @"C:\localfile.html");
// Or you can get the file content without saving it
string htmlCode = client.DownloadString("http://yoursite.com/page.html");
}
Ответ 2
в основном
using System.Net;
using System.Net.Http; // in LINQPad, also add a reference to System.Net.Http.dll
WebRequest req = HttpWebRequest.Create("http://google.com");
req.Method = "GET";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
source = reader.ReadToEnd();
}
Console.WriteLine(source);
Ответ 3
Вы можете получить его с помощью:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Ответ 4
Самый новый, самый последний, актуальный ответ
Этотпост действительно старый (ему было 7 лет, когда я на него ответил), поэтому никто из других ответов не использовал новый и рекомендуемый способ - класс HttpClient
.
HttpClient
считается новым API, и он должен заменить старые (WebClient
и WebRequest
)
string url = "page url";
HttpClient client = new HttpClient();
using (HttpResponseMessage response = client.GetAsync(url).Result)
{
using (HttpContent content = response.Content)
{
string result = content.ReadAsStringAsync().Result;
}
}
для получения дополнительной информации о том, как использовать класс HttpClient
(особенно в асинхронных случаях), вы можете обратиться к этому вопросу
Ответ 5
@cms - более новый способ, предложенный на веб-сайте MS, но мне пришлось решить сложную проблему, так как оба метода размещены здесь, теперь я выкладываю решение для всех!
Проблема:
если вы используете URL-адрес, подобный следующему: www.somesite.it/?p=1500
в некоторых случаях вы получаете внутреннюю ошибку сервера (500),
хотя в веб-браузере этот www.somesite.it/?p=1500
отлично работает.
Решение: Вы должны переместить параметры, рабочий код:
using System.Net;
//...
using (WebClient client = new WebClient ())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}