#api #steam #calculation #price #inventory
#API #Steam #вычисление #Цена #инвентарь
Вопрос:
У меня нет проблем с получением предметов инвентаря. Но я не могу эффективно рассчитать цены на товары.
У Valve нет API для определения цен.
Что я пробовал (используя «steamcommunity.com «) (например, javascript):
itemHashNameArray.forEach((hashname) => {
let url = `https://steamcommunity.com/market/priceoverview/amp;appid=730amp;market_hash_name=${hashname}`;
let itemDetails = steamApi(url);
//"steamApi" function just sends get request to site and returns response as json.
let itemPrice = parseFloat(itemDetails.lowest_price.split(" ")[0].replace(",", "."));
})
«steamcommunity.com/market » позволяет вам получить цену 1 товара за запрос.
Это очень медленно / неэффективно. Также steam блокирует вас после стольких запросов.
Сторонние API, которые я нашел, также допускают 1 элемент на запрос. И они даже не поддерживают другие валюты, кроме доллара. Мне нужно рассчитать и для других валют.
Есть ли более быстрый и лучший способ / api?
Комментарии:
1. Нужны некоторые clarification…it похоже, вы запрашиваете сайт напрямую? Не используете выделенный сервис API? Я не думаю, что у самой Valve есть такой, но могут быть третьи стороны. И да, любой обычный веб-сайт, вероятно, будет ограничивать запросы, поскольку это накладывает нагрузку на использование и затраты.
Ответ №1:
Просто чтобы уточнить, что происходит:
Большинство веб-страниц и API имеют ограничения в отношении запросов, это помогает предотвратить вредоносные DoS-атаки или просто слишком большую утечку ресурсов (часто слишком дорогостоящую). Я столкнулся с этой проблемой, пытаясь получить информацию из Википедии / DBpedia.
Хотя это раздражает, часто компании или сторонние организации признают необходимость проведения массовых транзакций со своими данными и открывают API (обычно за отдельную плату): https://partner.steamgames.com/doc/gettingstarted
Некоторые третьи стороны включают SteamApis и Steamlytics.
Этому также посвящен целый подраздел, вот соответствующий пост для вызова API для получения всех предметов инвентаря пользователя: https://www.reddit.com/r/SteamBot/comments/jey4sg/help_i_am_trying_to_make_a_script_that_counts_the /
Потенциально другим вариантом является запуск собственного API-сервиса, который мог бы каким-то образом извлекать данные инвентаря со скоростью, не превышающей предельных значений. Не уверен в законности этого или в том, через какие препятствия пришлось пройти третьим лицам, и, вероятно, это будет самым дорогостоящим, если вы не начнете взимать плату за его использование. Я думаю, что загрузка полного HTML-кода и последующее написание синтаксического анализатора для анализа части этой информации с помощью простого Javascript или jQuery облегчили бы некоторые вызовы, выглядящие как спам, но у этого, вероятно, тоже есть ограничение, и я не уверен, что это включало бы всю необходимую информацию, которая была бы легко доступна.