Получение корзины Steam
Пришел с таким вопросом. Мне нужно получить корзину стима, но при переходе на https://store.steampowered.com/cart у меня ничего не отображается, хотя в корзине есть товары. Вот пример кода, который использую
private async Task GetCart(IEnumerable<Cookie> cookies)
{
var cartUrl = "https://store.steampowered.com/cart";
var cookieContainer = new CookieContainer();
var handler = new HttpClientHandler() { CookieContainer = cookieContainer};
handler.UseCookies = true;
using (var client = new HttpClient(handler))
{
foreach (var cookie in cookies)
{
cookieContainer.Add(new Uri(cartUrl), cookie);
}
var response = await client.GetAsync(cartUrl);
var s = await response.Content.ReadAsStringAsync();
Console.WriteLine("Запрос прошел успешно!");
}
}
в s складываю полученый html документ. По идее, все куки собираю и отправляю с запросом. Пробовал в Postman - e прокинуть такой запрос - результат один и тот-же. Куки все указывал при запросе. Он показывает, что за пользователь и счет
Ответы (1 шт):
Хочу выразить благодарность EvgeniyZ, что показал, в каком направлении копать. Смотрите, те, кто тоже столкнулся с такой проблемой, есть библиотека Selenium WebDriver. Она эмулирует работу браузера и дожидается полной загрузки страницы.Вот, как выглядит
private async Task GetCart(IEnumerable<System.Net.Cookie> cookies)
{
var chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--headless"); // Опционально: запуск браузера в фоновом режиме
using (var driver = new ChromeDriver(chromeOptions))
{
var cartUrl = "https://store.steampowered.com/cart";
driver.Navigate().GoToUrl("https://store.steampowered.com");
// Добавление cookies
foreach (var cookie in cookies)
{
driver.Manage().Cookies.AddCookie(new OpenQA.Selenium.Cookie(cookie.Name, cookie.Value));
}
driver.Navigate().GoToUrl(cartUrl);
var pageSource = driver.PageSource;
Console.WriteLine("Запрос прошел успешно!");
}
}
в pageSource вернулась полностью прогруженная страница