如何获得火箭联盟球员的MMR?

How to get Rocket League players' MMR?

我想确保通过平台和给定的 ID 检索玩家的 MMR。我试着用 TRN Tracker API 查看,但他们删除了火箭联盟的 API。

我想抓取该网站,但没有任何帮助它必然要求我“激活 javascript”,我认为 python 是不可能的。 所以我尝试抓取 another site 除了该站点还要求 javascript 并尝试用 Insomnia 显示它(应用程序测试和设计 APIs)它受 Cloudflare anti DDOS 保护系统.

我本来想通过 rltracker pro 但它在 2015 年被阻止了。 在所有这些失败之后,我想回到 Psyonix 的火箭联盟 API ...已关闭 ...

所以我继续研究并发现这个 site 可以真正回答我的问题,但事实上我不明白他是如何在一切都关闭且没有任何工作的情况下访问数据的。

有没有我错过的地方?我不知道从哪里可以找到这些信息。

rlstats 对我来说似乎是可抓取的,请看这里:

import requests
from bs4 import BeautifulSoup
from datetime import datetime
import pandas as pd

now = datetime.now()

headers =   {
    'accept':'*/*',
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
    }

url = 'https://rlstats.net/leaderboards/skills'

resp = requests.get(url,headers=headers)

print(resp)

soup = BeautifulSoup(resp.text,'html.parser')

game_type_dict = {'10':'Duel','11':'Doubles','13':'Standard','12':'Solo Standard'}

final = []
for table in soup.find_all('table',{'data-platform':'Mixed'}):
    if table['data-skill'] not in game_type_dict:
        continue

    game_type = game_type_dict[table['data-skill']]
    for i,row in enumerate(table.find_all('tr')):
        if i == 0:
            continue
        for k,td in enumerate(row.find_all('td')):

            if k == 0:
                rank = td.text.strip()
            if k == 1:
                name = td.text.strip()
                link = 'https://rlstats.net/'+td.find('a')['href']
            if k == 2:
                platform = td.text.strip()
            if k == 3:
                rating = td.text.strip()

                item = {
                    'game_type' : game_type,
                    'rank' : rank,
                    'name' : name,
                    'link' : link,
                    'platform' : platform,
                    'rating' : rating,
                    'scraped' : now.strftime('%Y-%m-%d %H:%M:%S')

                }
                final.append(item)


df= pd.DataFrame(final)
df.to_csv('rocket_league.csv',index=False)

print('Saved to rocket_league.csv')