В общем я хочу что бы текст из сайта выводился в label на моей форме, Хочу сделать мониторинг серверов, вопрос: как мне это реальзовать? Пробовал устонавливать HtmlAgilityPack и решать проблемс с ним но чет не допёр, Нужно конкретное отображение информации с сайта, если кто то обладает информацией которая может помочь мне реализвать это - пишите в тг @pred_tren . или в дс davidka#7777 Помогшему подарок гарантирую
Хз мб не лучший способ, но попробуй юзать селениум и получать оттуда инфу, но если есть реквесты, то можно и их использовать
IDont, Нет, мне нужно получать и обновлять эту информацию каждые несколько секунд, я точно знаю что это можно сделать с помошью HtmlAgilityPack, но не знаю алгоритма который подошел бы мне, если что то вот ссыль на мониторинг с которого нужно копировать текст (https://www.battlemetrics.com/servers/csgo/14201950) (noad) и именно строку Онлайн игроки: */*
mfo_otrisovka, private static HttpClient _httpClient = new (); private static async Task<string> GetPlayerCount() { var response = await _httpClient.GetAsync("https://www.battlemetrics.com/servers/csgo/14201950"); if(response.StatusCode != HttpStatusCode.OK) { return null; } var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(await response.Content.ReadAsStringAsync()); return doc.DocumentNode.SelectSingleNode(@"//dt[normalize-space(text()) = 'Player count']/following-sibling::*[1]/self::dd")?.InnerText; } label.Text = GetPlayerCount().Result ?? "Error"; C# private static HttpClient _httpClient = new (); private static async Task<string> GetPlayerCount() { var response = await _httpClient.GetAsync("https://www.battlemetrics.com/servers/csgo/14201950"); if(response.StatusCode != HttpStatusCode.OK) { return null; } var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(await response.Content.ReadAsStringAsync()); return doc.DocumentNode.SelectSingleNode(@"//dt[normalize-space(text()) = 'Player count']/following-sibling::*[1]/self::dd")?.InnerText; } label.Text = GetPlayerCount().Result ?? "Error";
mfo_otrisovka, у HtmlAgilityPack оказывается можно прям с инета грузить, тогда код попроще выглядит, но он начнёт кидать exception'ы если сервер не ответил как ожидается (в предыдущей версии excetion'ов не будет - просто вернёт null): private static string GetPlayerCount() { var web = new HtmlAgilityPack.HtmlWeb(); var doc = web.Load("https://www.battlemetrics.com/servers/csgo/14201950"); return doc.DocumentNode.SelectSingleNode(@"//dt[normalize-space(text()) = 'Player count']/following-sibling::*[1]/self::dd").InnerText; } try { label.Text = GetPlayerCount(); } catch { label.Text = "Error"; } C# private static string GetPlayerCount() { var web = new HtmlAgilityPack.HtmlWeb(); var doc = web.Load("https://www.battlemetrics.com/servers/csgo/14201950"); return doc.DocumentNode.SelectSingleNode(@"//dt[normalize-space(text()) = 'Player count']/following-sibling::*[1]/self::dd").InnerText; } try { label.Text = GetPlayerCount(); } catch { label.Text = "Error"; }