I have the following working code
from requests import Session
from typing import Dict, Optional
TOKEN = 'NaXRu9JnMpSdb8l86BkJxj6gzKJofnhmExwr8EWkQtHoattDAGimsSYhpM22a61e1crjTjfIGTKfhzxA'
headers = {
'Host': 'extranet-lv.bwfbadminton.com',
'Accept': 'application/json, text/plain, */*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
'Authorization': f'Bearer 2|{TOKEN}',
'Content-Length': '49',
'Content-Type': 'application/json;charset=UTF-8',
'Origin': 'https://bwfbadminton.com',
'Priority': 'u=1, i',
'Referer': 'https://bwfbadminton.com/',
'Sec-Ch-Ua': '"Chromium";v="123", "Not:A-Brand";v="8"',
'Sec-Ch-Ua-Mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.122 Safari/537.36',
'Sec-Ch-Ua-Platform': '"macOS"',
'Sec-Fetch-Site': 'same-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty'
}
def get_teams(s: Session, mid: int) -> Optional[Dict]:
URL = 'https://extranet-lv.bwfbadminton.com'
r = s.post(
url=f'{URL}/api/vue-player-ranking-events',
verify=False,
data={
'activeTab': 4,
'playerId': str(mid),
'isPara': False
}
)
if r.status_code == 200:
teams = r.json()['results']
return teams
if __name__ == "__main__":
s = Session()
s.headers = headers
mid = 79799
team_members = get_teams(s=s, mid=mid)
The output is a dictionary of 80 dictionaries:
{‘9-85869’: {‘id’: ‘9-85869’, ‘name’: “WOMEN’S DOUBLES (khadijah
KAWTHAR)”, ‘partner_id’: 85869}, ‘8-0’: {‘id’: ‘8-0’, ‘name’: “MEN’S
DOUBLES ( )”, ‘partner_id’: 0}, ‘9-92279’: {‘id’: ‘9-92279’, ‘name’:
“WOMEN’S DOUBLES (Mai TANABE)”, ‘partner_id’: 92279}, ’10-0′: {‘id’:
’10-0′, ‘name’: ‘MIXED DOUBLES ( )’, ‘partner_id’: 0}, ‘8-81218’:
{‘id’: ‘8-81218’, ‘name’: “MEN’S DOUBLES (Yi Hsin WANG)”,
‘partner_id’: 81218}, ‘6-0’: {‘id’: ‘6-0’, ‘name’: “MEN’S SINGLES”,
‘partner_id’: 0}, ‘9-0’: {‘id’: ‘9-0’, ‘name’: “WOMEN’S DOUBLES ( )”,
‘partner_id’: 0}, ‘9-85452’: {‘id’: ‘9-85452’, ‘name’: “WOMEN’S
DOUBLES (Kokona ISHIKAWA)”, ‘partner_id’: 85452}, ‘8-88298’: {‘id’:
‘8-88298’, ‘name’: “MEN’S DOUBLES (Kevin BARKMAN)”, ‘partner_id’:
88298}, ‘9-80661’: {‘id’: ‘9-80661’, ‘name’: “WOMEN’S DOUBLES (Breanna
BISNOTT)”, ‘partner_id’: 80661}, ’10-88375′: {‘id’: ’10-88375′,
‘name’: ‘MIXED DOUBLES (Pei-Yu LI)’, ‘partner_id’: 88375}, ’10-56936′:
{‘id’: ’10-56936′, ‘name’: ‘MIXED DOUBLES (Nawaf ALGHAMDI)’,
‘partner_id’: 56936}, ‘7-0’: {‘id’: ‘7-0’, ‘name’: “WOMEN’S SINGLES”,
‘partner_id’: 0}, ‘8-57182’: {‘id’: ‘8-57182’, ‘name’: “MEN’S DOUBLES
(Kiren Milan DERAJ)”, ‘partner_id’: 57182}, ‘8-92843’: {‘id’:
‘8-92843’, ‘name’: “MEN’S DOUBLES (Shuhei OZEKI)”, ‘partner_id’:
92843}, ’10-78905′: {‘id’: ’10-78905′, ‘name’: ‘MIXED DOUBLES (SHEN
Xuan Yao)’, ‘partner_id’: 78905}, ‘9-59800’: {‘id’: ‘9-59800’, ‘name’:
“WOMEN’S DOUBLES (Diana GARAMOVA)”, ‘partner_id’: 59800}, ‘9-60335’:
{‘id’: ‘9-60335’, ‘name’: “WOMEN’S DOUBLES (Maya TAGUCHI)”,
‘partner_id’: 60335}, ‘9-70267’: {‘id’: ‘9-70267’, ‘name’: “WOMEN’S
DOUBLES (Malou YDE-ANDERSEN)”, ‘partner_id’: 70267}, ‘9-60670’: {‘id’:
‘9-60670’, ‘name’: “WOMEN’S DOUBLES (Kanano MUROYA)”, ‘partner_id’:
60670}, ‘9-91374’: {‘id’: ‘9-91374’, ‘name’: “WOMEN’S DOUBLES (Filippa
KjæR KJELLBERG)”, ‘partner_id’: 91374}, ‘9-86172’: {‘id’: ‘9-86172’,
‘name’: “WOMEN’S DOUBLES (Mohamed Shareef SHAIBA)”, ‘partner_id’:
86172}, ‘9-70111’: {‘id’: ‘9-70111’, ‘name’: “WOMEN’S DOUBLES (Luciana
BARBOZA LESCANO)”, ‘partner_id’: 70111}, ‘9-78112’: {‘id’: ‘9-78112’,
‘name’: “WOMEN’S DOUBLES (SAVOO Pravikash)”, ‘partner_id’: 78112},
‘8-69114’: {‘id’: ‘8-69114’, ‘name’: “MEN’S DOUBLES (Abhyuday
CHOUDHARY)”, ‘partner_id’: 69114}, ‘8-62332’: {‘id’: ‘8-62332’,
‘name’: “MEN’S DOUBLES (Shao Hua CHIU)”, ‘partner_id’: 62332},
‘8-70550’: {‘id’: ‘8-70550’, ‘name’: “MEN’S DOUBLES (Nasser
ALSAYEGH)”, ‘partner_id’: 70550}, ’10-70583′: {‘id’: ’10-70583′,
‘name’: ‘MIXED DOUBLES (Valeria CHUQUIMAQUI CURO)’, ‘partner_id’:
70583}, ‘8-55775’: {‘id’: ‘8-55775’, ‘name’: “MEN’S DOUBLES (Gafforbek
JABBOROV)”, ‘partner_id’: 55775}, ‘8-66522’: {‘id’: ‘8-66522’, ‘name’:
“MEN’S DOUBLES (Simon BARON-VEZILIER)”, ‘partner_id’: 66522},
’10-76213′: {‘id’: ’10-76213′, ‘name’: ‘MIXED DOUBLES (Jason
FRANCOIS)’, ‘partner_id’: 76213}, ’10-56930′: {‘id’: ’10-56930′,
‘name’: ‘MIXED DOUBLES (Kaito SUGAWARA)’, ‘partner_id’: 56930},
’10-82213′: {‘id’: ’10-82213′, ‘name’: ‘MIXED DOUBLES (Ian MOROMISATO
NAMISATO)’, ‘partner_id’: 82213}, ’10-58958′: {‘id’: ’10-58958′,
‘name’: ‘MIXED DOUBLES (LIM Xuan)’, ‘partner_id’: 58958}, ’10-91522′:
{‘id’: ’10-91522′, ‘name’: ‘MIXED DOUBLES (Rafaela SILVA LA ROSA)’,
‘partner_id’: 91522}, ‘9-63252’: {‘id’: ‘9-63252’, ‘name’: “WOMEN’S
DOUBLES (Farah ALHAJJI)”, ‘partner_id’: 63252}, ‘9-94441’: {‘id’:
‘9-94441’, ‘name’: “WOMEN’S DOUBLES (Mariya MASLYONOVA)”,
‘partner_id’: 94441}, ‘9-96691’: {‘id’: ‘9-96691’, ‘name’: “WOMEN’S
DOUBLES (Makhbuba MAKHMUDOVA)”, ‘partner_id’: 96691}, ‘9-57466’:
{‘id’: ‘9-57466’, ‘name’: “WOMEN’S DOUBLES (Taisia KASIANOV
KASIANOVA)”, ‘partner_id’: 57466}, ‘9-60301’: {‘id’: ‘9-60301’,
‘name’: “WOMEN’S DOUBLES (Mariana PAIVA)”, ‘partner_id’: 60301},
‘9-69401’: {‘id’: ‘9-69401’, ‘name’: “WOMEN’S DOUBLES (Machi
NAGASAKO)”, ‘partner_id’: 69401}, ‘9-72489’: {‘id’: ‘9-72489’, ‘name’:
“WOMEN’S DOUBLES (Sonia GONCALVES)”, ‘partner_id’: 72489}, ‘8-86169’:
{‘id’: ‘8-86169’, ‘name’: “MEN’S DOUBLES (Fernando SANHUEZA)”,
‘partner_id’: 86169}, ‘8-70130’: {‘id’: ‘8-70130’, ‘name’: “MEN’S
DOUBLES (Ting Yu GOH)”, ‘partner_id’: 70130}, ’10-63063′: {‘id’:
’10-63063′, ‘name’: ‘MIXED DOUBLES (Nathaniel FINZI)’, ‘partner_id’:
63063}, ’10-71758′: {‘id’: ’10-71758′, ‘name’: ‘MIXED DOUBLES (Zane
REID)’, ‘partner_id’: 71758}, ’10-57490′: {‘id’: ’10-57490′, ‘name’:
‘MIXED DOUBLES (Bradley EVANS)’, ‘partner_id’: 57490}, ’10-61720′:
{‘id’: ’10-61720′, ‘name’: ‘MIXED DOUBLES (Jonathan MOLINEROS OCHOA)’,
‘partner_id’: 61720}, ’10-89553′: {‘id’: ’10-89553′, ‘name’: ‘MIXED
DOUBLES (Alessandro ANGUIANO GONZALEZ)’, ‘partner_id’: 89553},
’10-85876′: {‘id’: ’10-85876′, ‘name’: ‘MIXED DOUBLES (Abdurasul
KHADJAEV)’, ‘partner_id’: 85876}, ’10-77775′: {‘id’: ’10-77775′,
‘name’: ‘MIXED DOUBLES (DIAZ Vania)’, ‘partner_id’: 77775},
’10-80159′: {‘id’: ’10-80159′, ‘name’: ‘MIXED DOUBLES (Alejandro
GARCIA GARCIA)’, ‘partner_id’: 80159}, ‘9-55831’: {‘id’: ‘9-55831’,
‘name’: “WOMEN’S DOUBLES (Chisa YAMAFUJI)”, ‘partner_id’: 55831},
‘9-91698’: {‘id’: ‘9-91698’, ‘name’: “WOMEN’S DOUBLES (Asuka
SUGIYAMA)”, ‘partner_id’: 91698}, ‘9-89906’: {‘id’: ‘9-89906’, ‘name’:
“WOMEN’S DOUBLES (Vaiva ZYMANTE)”, ‘partner_id’: 89906}, ’10-77216′:
{‘id’: ’10-77216′, ‘name’: ‘MIXED DOUBLES (Kasturi RADHAKRISHNAN)’,
‘partner_id’: 77216}, ‘8-65328’: {‘id’: ‘8-65328’, ‘name’: “MEN’S
DOUBLES (Shun Khiat GOH)”, ‘partner_id’: 65328}, ‘8-91966’: {‘id’:
‘8-91966’, ‘name’: “MEN’S DOUBLES (Nihar KELKAR)”, ‘partner_id’:
91966}, ‘8-63831’: {‘id’: ‘8-63831’, ‘name’: “MEN’S DOUBLES (Tim
KRÄMER)”, ‘partner_id’: 63831}, ‘8-95418’: {‘id’: ‘8-95418’, ‘name’:
“MEN’S DOUBLES (Benjamin Igor OLO ANGONO)”, ‘partner_id’: 95418},
’10-57466′: {‘id’: ’10-57466′, ‘name’: ‘MIXED DOUBLES (Taisia KASIANOV
KASIANOVA)’, ‘partner_id’: 57466}, ’10-83383′: {‘id’: ’10-83383′,
‘name’: ‘MIXED DOUBLES (Saul ANDRADE YANQUE)’, ‘partner_id’: 83383},
’10-56027′: {‘id’: ’10-56027′, ‘name’: ‘MIXED DOUBLES (Maurice MARTIN
REVILLA)’, ‘partner_id’: 56027}, ’10-60750′: {‘id’: ’10-60750′,
‘name’: ‘MIXED DOUBLES (Abdul Voris MUMINOV)’, ‘partner_id’: 60750},
’10-64159′: {‘id’: ’10-64159′, ‘name’: ‘MIXED DOUBLES (Abdurashid
MUMINOV)’, ‘partner_id’: 64159}, ’10-66077′: {‘id’: ’10-66077′,
‘name’: ‘MIXED DOUBLES (Ratmir GILMANOV)’, ‘partner_id’: 66077},
‘8-84866’: {‘id’: ‘8-84866’, ‘name’: “MEN’S DOUBLES (Mohamed ADEEM
ADAM)”, ‘partner_id’: 84866}, ’10-95134′: {‘id’: ’10-95134′, ‘name’:
‘MIXED DOUBLES (Adrian SCHWARZMANN)’, ‘partner_id’: 95134},
’10-66853′: {‘id’: ’10-66853′, ‘name’: ‘MIXED DOUBLES (Ignas
REZNIKAS)’, ‘partner_id’: 66853}, ‘9-82930’: {‘id’: ‘9-82930’, ‘name’:
“WOMEN’S DOUBLES (Rihanna RUST)”, ‘partner_id’: 82930}, ‘8-82450’:
{‘id’: ‘8-82450’, ‘name’: “MEN’S DOUBLES (Mikkel NORMANN)”,
‘partner_id’: 82450}, ‘8-50542’: {‘id’: ‘8-50542’, ‘name’: “MEN’S
DOUBLES (HIRIPONGSATHORN Nopparat)”, ‘partner_id’: 50542}, ‘8-71264’:
{‘id’: ‘8-71264’, ‘name’: “MEN’S DOUBLES (Natpapon KITPHAIBOOL)”,
‘partner_id’: 71264}, ‘8-60536’: {‘id’: ‘8-60536’, ‘name’: “MEN’S
DOUBLES (Thanadol JUMPANOI)”, ‘partner_id’: 60536}, ‘8-96523’: {‘id’:
‘8-96523’, ‘name’: “MEN’S DOUBLES (Kenneth HUI)”, ‘partner_id’:
96523}, ‘8-95212’: {‘id’: ‘8-95212’, ‘name’: “MEN’S DOUBLES (Andres
QUADRI)”, ‘partner_id’: 95212}, ‘8-53838’: {‘id’: ‘8-53838’, ‘name’:
“MEN’S DOUBLES (Kazuaki OSHIMA)”, ‘partner_id’: 53838}, ‘8-89956’:
{‘id’: ‘8-89956’, ‘name’: “MEN’S DOUBLES (Ismail RISKY HIDAYAT)”,
‘partner_id’: 89956}, ‘8-66723’: {‘id’: ‘8-66723’, ‘name’: “MEN’S
DOUBLES (Aldino ALWAFI)”, ‘partner_id’: 66723}, ‘8-19995’: {‘id’:
‘8-19995’, ‘name’: “MEN’S DOUBLES (JEON Eu Ddeum)”, ‘partner_id’:
19995}}
The output is different from the output show on the website.
- visit player’s website
- record Network logs
- click on “ranking”
- check the output of “vue-player-ranking-events”:
{“results”:{“9-95065”:{“id”:”9-95065″,”name”:”WOMEN’S DOUBLES (Lyric
SU)”,”partner_id”:95065},”10-55967″:{“id”:”10-55967″,”name”:”MIXED
DOUBLES (Austin
MAO)”,”partner_id”:55967},”9-59425″:{“id”:”9-59425″,”name”:”WOMEN’S
DOUBLES (Chloe
LAM)”,”partner_id”:59425},”10-75681″:{“id”:”10-75681″,”name”:”MIXED
DOUBLES (Ethan Leshan
ZHANG)”,”partner_id”:75681},”7-0″:{“id”:”7-0″,”name”:”WOMEN’S
SINGLES”,”partner_id”:0},”10-65755″:{“id”:”10-65755″,”name”:”MIXED
DOUBLES (Enoch SONG)”,”partner_id”:65755}}}
So, there are only 6 dictionaries whereas the output of requests.Session
shows 80 dictionaries.
What am I doing wrong?
5
It seems like you need to implement a filter for your results to get the expected IDs.
Also the return should be like return {'results': teams}
as you expected