Обзоры Steam на Apex Legends через Steam Web APIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обзоры Steam на Apex Legends через Steam Web API

Сообщение Anonymous »

Иногда я собираю обзоры Steam с помощью Steam Web API для личного использования, и следующий код, хотя и содержит некоторые избыточные части, может собирать все обзоры для данной игры. В последнее время я пытался собирать обзоры на Apex Legends, однако, что бы я ни делал, я получаю 1427 обзоров. Я пробовал много вещей, таких как удаление языкового фильтра, изменение фильтра активности не по теме, динамическая дата окончания, однако я не могу собрать все отзывы.
После курсора, который дает 27 отзывов (это первый раз) Я получаю что угодно, кроме 100) следующий курсор — AoJwq+Kw1PUCf/CWrQI=, он дает 0 отзывов и также возвращается в качестве следующего курсора.
Мой код выглядит следующим образом, есть ли какие-либо предложения, чтобы я мог собрать все отзывы, заранее спасибо.
import requests
from datetime import datetime
import urllib.parse
import time

def fetch_game_reviews(appid, cursor='*', filter='recent', language='english'):
"""
Fetch game reviews for a specific Steam game.

Parameters:
- appid: Steam Application ID for the game.
- cursor: Cursor for pagination. Use '*' for the first page.
- filter: Type of reviews to fetch ('recent', 'updated', 'all').
- language: Language of the reviews ('english', 'spanish', etc.).

Returns:
- JSON response containing game reviews.
"""
if cursor != '*':
cursor = urllib.parse.quote(cursor)
url = f"https://store.steampowered.com/apprevie ... activity=0"
response = requests.get(url)
return response.json()

def fetch_reviews_until_date(appid, end_date, filter='recent', language='all'):
"""
Fetch game reviews for a specific Steam game until a specific date.

Parameters:
- appid: Steam Application ID for the game.
- end_date: The end date for fetching reviews (YYYY-MM-DD format).
- filter: Type of reviews to fetch ('recent', 'updated', 'all').
- language: Language of the reviews ('english', 'spanish', etc.).

Returns:
- List of all reviews up until the specified end date.
"""
end_date = datetime.strptime(end_date, '%Y-%m-%d')
previous_cursor = None
all_reviews = []
cursors = []
cursor = '*'
while True:
response = fetch_game_reviews(appid, cursor=cursor, filter=filter, language=language)
collected_timestamp = int(time.time())
reviews = response['reviews']
new_cursor = response.get('cursor')
cursors.append(new_cursor)

if not reviews or (new_cursor == previous_cursor and cursor != '*'):
return all_reviews, cursors

for review in reviews:
review_date = datetime.fromtimestamp(review['timestamp_created'])
review['collected'] = collected_timestamp
review['appid'] = appid
if review_date < end_date:
return all_reviews
all_reviews.append(review)
print(len(all_reviews))
print(response['cursor'])

previous_cursor = cursor
cursor = new_cursor

return all_reviews, cursors

reviews, cursors = fetch_reviews_until_date('1172470', '2020-10-01')


Подробнее здесь: https://stackoverflow.com/questions/787 ... am-web-api
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Обзоры Steam на Apex Legends через Steam Web API
    Anonymous » » в форуме Python
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Получить SteamID из Steam API, пропустив Steam -имя пользователя
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Получить SteamID из Steam API, пропустив Steam -имя пользователя
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib Legends не работает
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Скрыть лейблы Legends с подчеркиванием в Matplotlib> 3.10
    Anonymous » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous

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