Вычисление стоимости инвентаря Steam

#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 облегчили бы некоторые вызовы, выглядящие как спам, но у этого, вероятно, тоже есть ограничение, и я не уверен, что это включало бы всю необходимую информацию, которая была бы легко доступна.