Я пытаюсь написать анализатор, это будет проанализировать Steam -инвентаризации для пользователей из входного файла [закJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Я пытаюсь написать анализатор, это будет проанализировать Steam -инвентаризации для пользователей из входного файла [зак

Сообщение Anonymous »

Стоир должен обработать большое количество пользователей (около 1500) за короткое время (около 2-3 минут) с 429 или 403 ошибками не более 10-15% всех пользователей. Я не знаю, чтобы написать анализаторы, и я на самом деле пытался написать его на Python, но это слишком медленно. Есть некоторые глупые идеи, как, но я не знаю, как это сделать, не блокируя Steam:/
import axios from 'axios';
import fs from 'fs/promises';
import { SocksProxyAgent } from 'socks-proxy-agent';

async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}

async function main() {
// reading configs
const config = JSON.parse(await fs.readFile('config/inventories.json', 'utf-8'));
const players = JSON.parse(await fs.readFile('output/players_output.json', 'utf-8'));

const appid = config.game;
const contextid = config.contextid;
const proxies = config.PROXIES; // SOCKS5

// Reqest parameters
const country = config.country || 'US';
const language = config.language || 'english';
const currency = config.currency || '1'; // USD
const two_factor = config.two_factor || '0';

const bannedProxies = new Set();

for (let i = 0; i < players.length; i++) {
const player = players;
const steamid = player.steamid64;
const name = player.name;

//forming url
const baseUrl = `https://steamcommunity.com/inventory/${ ... {contextid}`;
const url = `${baseUrl}?country=${country}&language=${language}&currency=${currency}&two_factor=${two_factor}`;

const proxy = proxies[i % proxies.length];

if (bannedProxies.has(proxy)) {
console.log(`Proxy banned, skip: ${proxy}`);
continue;
}

// New socks agent
const agent = new SocksProxyAgent(proxy);

// Browser-like headers
const headers = {
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'en-US,en;q=0.9',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
'Referer': baseUrl,
'Origin': 'https://steamcommunity.com',
'Host': 'steamcommunity.com',
'X-Requested-With': 'XMLHttpRequest',
'Connection': 'keep-alive',
'Cache-Control': 'no-cache',
};

try {
console.log(`Steam Inventory reqesest for ${name} with proxy: ${proxy}`);

const response = await axios.get(url, {
httpsAgent: agent,
headers,
timeout: 10000,
});

console.log(`Status: ${response.status}`);

if (response.status === 429 || response.status === 403) {
console.log(`Proxy has been banned: ${proxy}`);
bannedProxies.add(proxy);
continue;
}

// Working with response data

} catch (err) {
console.log(`Proxy error ${proxy}: ${err.message}`);
bannedProxies.add(proxy);
continue;
}

// Pause
await sleep(500);
}
}

main().catch(console.error);
< /code>
и мои конфигурации json, как после ядерной войны (существует огромный счет мусора) < /p>
{
"steam_api_key": "KEY",
"database": {
"filename": "data/data.db"
},
"PLAYERS": "output/players_output.json",
"URL": "https://steamcommunity/inventory",
"DELAY": 0.5,
"TIMEOUT": 1.5,
"game": 730,
"contextid": 2,
"mode": "scrape",
"searchFor": null,
"outputFile": "./output/inventories.json",

"USE_PROXY": true,
"PROXY_CHANGERATE": 2,
"PROXIES": [
there is 10 proxies
]
}
< /code>
Вывод должен быть таким в будущем (это не полный код, потому что я застрял в блокировке пара) < /p>
[
{
"name": "",
"steamid64": "",
"address": ""
}, ...
]
< /code>
и ввод выглядит как < /p>
[
{
"nickname": "",
"steamid": "",
"server": "its frome another script, nothing to do there, only for next",
"inventory": [
{
"id": "45072097998",
"market_hash_name": "Dreams & Nightmares Case",
"type": "Container, base class"
}, ...
]
}, ...
]


Подробнее здесь: https://stackoverflow.com/questions/796 ... ers-from-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Обзоры Steam на Apex Legends через Steam Web API
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Обзоры Steam на Apex Legends через Steam Web API
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Получить SteamID из Steam API, пропустив Steam -имя пользователя
    Anonymous » » в форуме Php
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Получить SteamID из Steam API, пропустив Steam -имя пользователя
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как я могу получить список хостов из файла инвентаризации Ansible?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»