Есть страница (не моя и без API) с которой надо взять данные. Пример такой страницы
https://warthunder.ru/ru/community/userinfo/?nick=Keofox
Нужные данные находятся в таких блоках:
<ul class="profile-stat__list-sb">
<li class="profile-stat__list-item">СБ</li>
<li class="profile-stat__list-item">93</li>
<li class="profile-stat__list-item">64</li>
<li class="profile-stat__list-item">5</li>
Ранее парсер работал через AngleSharp, но недавно добавили защиту DDoS protection by Cloudflare. Соответственно парсер не работает, трюки с задержкой, паралельной загрузкой в webview успеха не дали.
Единственное возможное решение (на мой взгляд) это вытащить HTML код с уже загруженной страницы в WebView (в WebView страница проходит проверку cloudflare и загружается без проблем). Видел подобные примеры на Джава, но интерпритировать под C# не удалось. Как можно вытащить из WebView HTML код и использовать его?
Спасибо за полезный совет @EvgeniyZ
Надо установить через nuGet библиотеку https://github.com/elcattivo/CloudFlareUtilities
Итоговый код для AngleSharp:
try
{
ClearanceHandler handler = new ClearanceHandler
{
MaxRetries = 2
};
HttpClient client = new HttpClient(handler);
string source = await client.GetStringAsync("https://warthunder.ru/ru/community/userinfo/?nick=Keofox");
var parser = new HtmlParser();
document = parser.ParseDocument(source);
}
catch (AggregateException ex) when (ex.InnerException is CloudFlareClearanceException)
{
}
catch (AggregateException ex) when (ex.InnerException is TaskCanceledException)
{
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Запускаю проект на другой машине, проект скачан из репозитория, все ссылки работают, связи все правильные, через gacutil добавил несколько сборок,...
Дело в том что при билде приложения для Play Market нужно билдить его как Android App bundle , но проблема в том , что при таком билде я просто не могу загружать...