Подгрузка слов с сайта
Есть приложение для динамического подсчёта гласных в строке (он же поэтический калькулятор). Нужно запилить подбор рифм к словам с помощью контекстного меню. Для того, чтобы это сделать, нужно подгрузить данные с сайта https://rifmovka.ru/.
Само контекстное меню я реализую, вопрос скорее в том, что нужно чтобы приложение отправляло бы запрос на сайт (rifmovka.ru/, ссылки на фактические рифмы формата rifmovka.ru/rifma/вставьте слово), выгружало бы из него список данных (хоть в каком-нибудь виде) и передавало его в приложение.
Сами рифмы лежат в блоке.typeSimPage
.
Ответы (1 шт):
Берёте HttpClient
private static readonly HttpClient client = new();
Пишете метод для получения HTML страницы, на данном сайте это просто
private static async Task<string> GetHtmlByQuery(string query)
{
UriBuilder builder = new UriBuilder("https://rifmovka.ru/rifma/");
builder.Path += query;
return await client.GetStringAsync(builder.Uri);
}
Далее, почитайте это: Как распарсить HTML в .NET?
Например с помощью HtmlAgilityPack
static async Task Main(string[] args)
{
string html = await GetHtmlByQuery("стак");
//Console.WriteLine(html);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
var lists = doc.DocumentNode.SelectNodes("//div[@id=\"typeSimPage\"]/ul"); // https://devhints.io/xpath
foreach (HtmlNode list in lists)
{
string[] words = list.ChildNodes
.Select(x => x.InnerText)
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToArray();
Console.WriteLine(string.Join(", ", words));
}
}
Получаем вывод в консоль
штаг, гиджак, бакштаг, маштак, ахтерштаг, наждак, пиджак, рештак, четвертак, старшак
джетлаг, дуршлаг, лапсердак, бардак, чердак, кавардак, держак, кибератак, контратак, информатак
батрак, трак, ратрак, санджак, следак, драг, итак, драк, так, ватаг
родак, трешак, растак, ржак, доширак, афродизиак, шлак, шлаг, судак, простак
саадак, студак, кержак, верстак, форшлаг, квершлаг, атак, тик-так, тики-так, чудак
мутак, химатак, даг, дудак, куржак, олдфаг, макдак, видак, дак, лафтак
пятак, литфак, нунатак, триктрак, ландтаг, служак, мастак, зодиак, риксдаг, рейхстаг
бундестаг, полушаг, будораг, бедолаг, дурак, отваг, лешак, лошак, рожак, рыжак
вурдалак, портулак, нитролак, кишлак, лежак, кондак, шаг, кадиллак, медфак, обшлаг
педфак, сверханшлаг, зашаг, салаг, салак, шараг, шеллак, аншлаг, серак, сайдак
сагайдак, свежак, сирак, дашнак, истфак, журфак, востфак, варак, кулаг, бумагомарак
лайдак, кошак, мышак, малаг, раг, ишак, ежак, ужак, кулак, волколак
андрофаг, курак, апилак, рак, чужак, бурлак, барак, буерак, лаг, бурак
фальшак, антропофаг, вожак, лак, кушак, клоак, большак, арак, продмаг, анорак
джетпак, чурак, южак, байдак, бактериофаг, агрогулаг, детритофаг, гидробак, вителлофаг, задавак
зрак, сервак, пастернак, форшмак, благ, краг, маклак, влаг, браг, вахлак
чарвак, ак, клак, плевак, баклаг, рубак, лаврак, рыбак, врак, аг
брак, архипелаг, бивуак, правак, ведьмак, аравак, враг, энтомофаг, левак, меньшак
чепрак, аак, фраг, гей-брак, полифаг, фитофаг, мрак, овраг, аммиак, трепак
дубак, ергак, трипак, флаг, фрак, желвак, трупак, моралфаг, чурбак, табак
полумрак, юрфак, филфак, тетрапак, первак