Получить историю цен на рынке сообщества Steam с помощью node.js - PullRequest
0 голосов
/ 22 октября 2019

У меня проблемы с получением истории цен в Steam. Глядя на другие вопросы, мне удалось найти изящный способ создания ссылки, которая действительно дает мне историю цен на предмет, моя проблема в том, что вам нужно войти в Steam, чтобы получить эти данные. Как мне просмотреть эти данные, как если бы я вошел через http-запрос? Я читал другие темы, в которых они говорили о сеансах браузера и о том, как кто-то в моей ситуации должен устанавливать куки-файлы с идентификатором сессии, но мне не удалось заставить его работать в узле. Код состояния, который я получаю, - 400.

Это мой код:

const https = require('https');

const options = {
  host: 'steamcommunity.com',
  path: '/market/pricehistory/?country=SE&currency=3&appid=730&market_hash_name=CS20%20Case',
  method: 'GET',
  headers: {
    'Cookie': `steamLoginSecure=THE SESSION ID I GOT FROM WRITING
              "document.cookie" IN THE DEV CONSOLE`
  }
}

const req = https.request(options, res => {
  console.log(res.statusCode);
  console.log(res.headers);

  let body = '';

  res.on('data', data => {
    body += data;
  });

  res.on('end', () => console.log(body));
}).on('error', error => console.log(error));
req.end();

Я не уверен, что в моем коде что-то не так или как решить эту проблемупроблема у меняЯ действительно ценю любую помощь, которую я могу получить.

1 Ответ

0 голосов
/ 27 октября 2019

Похоже, что Steam удалил cookie «steamLogin», объяснив, почему так много людей в прошлом году столкнулись с проблемами при использовании его в своем коде. Вместо этого вы хотите использовать cookie «steamLoginSecure».

Сначала вам нужно войти в систему https://steamcommunity.com. Во-вторых, вы хотите найти cookie «steamLoginSecure» и скопировать его содержимое. Для Chrome это будет:

Настройки> Дополнительно> Конфиденциальность и безопасность> Настройки сайта> Файлы cookie и данные сайта> Просмотреть все файлы cookie и данные сайта> steamcommunity.com> steamLoginSecure

Теперь скопируйте содержимое«steamLoginSecure» и сохраните его в виде cookie в ваших заголовках.

Это последний код, с которым я закончил:

const https = require('https');

const options = {
  host: 'steamcommunity.com',
  path: '/market/pricehistory/?country=SE&currency=3&appid=730&market_hash_name=CS20%20Case',
  method: 'GET',
  headers: {
    'Cookie': 'steamLoginSecure=THE CONTENT OF "steamLoginSecure" HERE'
  }
}

const req = https.request(options, res => {
  console.log(res.statusCode);
  console.log(res.headers);

  let body = '';

  res.on('data', data => {
    body += data;
  });

  res.on('end', () => console.log(body));
}).on('error', error => console.log(error));
req.end();
...