probberechts / soccerdata

⛏⚽ Scrape soccer data from Club Elo, ESPN, FBref, FiveThirtyEight, Football-Data.co.uk, FotMob, Sofascore, SoFIFA, Understat and WhoScored.
https://soccerdata.readthedocs.io/en/latest/
Other
516 stars 88 forks source link

[FotMob] Multiple Invalid Stat Types for FotMob #528

Open 6abd opened 3 months ago

6abd commented 3 months ago

When trying to call read_team_match_stats(), the stat types given by the docs cause an "Invalid stat type" error for multiple categories. The "Top stats" category seems to be one of the only working ones.

6abd commented 3 months ago

I also just discovered that stats in the working "Top stats" category show the opponents' stats for each metric.

marcjbaron commented 3 months ago

What seasons and leagues are causing the issues?

6abd commented 3 months ago

What seasons and leagues are causing the issues?

I've only done the 2015-16 Barcelona season because that's what I'm using for a project, but it is probably a site-wide thing due to changes. FBref also could have an added playing-time stat and I think some outdated requests because some of the stat categories don't work on that site too.

marcjbaron commented 3 months ago

I've only done the 2015-16 Barcelona season because that's what I'm using for a project, but it is probably a site-wide thing due to changes.

Yes, it looks like there are limited stats available for seasons prior to 2016-2017, so the available stats are all in the "Top stats" category.

For the second issue, if you set opponent_stats=False, it will give you the requested team's stats. When it is set to True (the default setting), it should give both team's stats, but it only returns the opponent's stats, so that's an issue that may be worth looking into.

6abd commented 3 months ago

I've only done the 2015-16 Barcelona season because that's what I'm using for a project, but it is probably a site-wide thing due to changes.

Yes, it looks like there are limited stats available for seasons prior to 2016-2017, so the available stats are all in the "Top stats" category.

For the second issue, if you set opponent_stats=False, it will give you the requested team's stats. When it is set to True (the default setting), it should give both team's stats, but it only returns the opponent's stats, so that's an issue that may be worth looking into.

Ok, thank you.

fofota commented 2 weeks ago

Hey, just to add to this.

When I run Bolton Wanderers in ENG League One for the 2023/24 season using this code

match_stats = fotmob.read_team_match_stats(opponent_stats=True, team='Bolton Wanderers', stat_type='Expected goals (xG)')

I get an error - and closer inspection this appears to be that some of this club's games were abandoned in the year.

Specifically when I run this code

schedule = fotmob.read_schedule() bolton_games = schedule[(schedule['home_team'] == 'Bolton Wanderers') | (schedule['away_team'] == 'Bolton Wanderers')] bolton_games

Then for some games status = Ab (as opposed to FT, which is what most games say) and this leads to an error