#c# #get #httpresponse #dotnet-httpclient #dynamic-content
Вопрос:
Например, мне нужно получить значения цен из https://www.futbin.com/22/sales/415/erling-haaland?platform=pc, которые расположены в таблице «продажи-внутренние». Проблема в том, что HTTP-ответ возвращает результаты без загруженных цен.
HttpResponseMessage response = await client.GetAsync("https://www.futbin.com/22/sales/415/?platform=pc");
response.EnsureSuccessStatusCode();
string responseString = await response.Content.ReadAsStringAsync();
Как получить эти данные?
Комментарии:
1. Предполагая, что содержимое загружается через API после загрузки самой страницы, вы можете найти запрос API в отладчике вашего браузера на вкладке Сеть. В противном случае вам придется научиться очищать одностраничные приложения (что потребует разрешения выполнения содержимого Javascript страницы — возможно, с помощью инструмента автоматизации браузера, такого как Selenium или Puppeteer).
2. Данные загружаются на эту страницу с помощью AJAX-запросов. Проверить futbin.com/22/getPlayerSales?resourceId=239085amp;platform=pc и futbin.com/…
3. Спасибо вам за ваш ответ! Это очень помогло!
Ответ №1:
URL — адрес, который вы упомянули в вопросе, отображает представление. Чтобы получить фактические данные, вам необходимо проверить приведенные ниже URL-адреса. Пожалуйста, обратите внимание, что я получил приведенные ниже URL-адреса из окна отладчика, но вы можете проверить документы, если API уже предоставлены.
https://www.futbin.com/22/getPlayerSales?resourceId=239085amp;platform=pc
https://www.futbin.com/getPlayerChart?type=live-salesamp;resourceId=239085amp;platform=pc
public async Task Main()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(@"https://www.futbin.com/22/getPlayerSales?resourceId=239085amp;platform=pc");
response.EnsureSuccessStatusCode();
string responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
}
Ответ №2:
Вы получаете html без результатов, потому что они загружают данные при загрузке страницы. Откройте инструменты разработки в своем браузере и перейдите на вкладку сеть, там вы увидите, что они извлекают данные из:
https://www.futbin.com/22/getPlayerSales?resourceId=239085amp;platform=pc
Это возвращает список всех цен с датами в json.
Комментарии:
1. Большое вам спасибо!