The 4 Ways to Collect Football Data—and the Best Starting Point for Beginners
Unfortunately, nearly all scrapers or scraping methods on FBref.com aren't working anymore (Mar 15th, 2026). Correct me if I'm wrong.
Fbref dropped all its advanced data. And a few weeks before that the scrapers stopped working. So sad.
May I ask what alternatives do you have now? I personally go for Understat but that’s mostly about xG.
I just bought a Wyscout subscription. I do not think there are free alternatives that offer the level of detail of Fbref.
epl_schedule = fbref.read_schedule() returns the ff error: [12/15/25 09:01:24] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
1 of 5).
Traceback (most recent call last):
File "/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py",
line 525, in _download_and_save
response.raise_for_status()
File "/usr/local/lib/python3.12/dist-packages/requests/models.py",
line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:
https://fbref.com/en/comps/
[12/15/25 09:01:30] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
2 of 5).
[12/15/25 09:01:36] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
3 of 5).
[12/15/25 09:01:42] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
4 of 5).
[12/15/25 09:01:48] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
5 of 5).
---------------------------------------------------------------------------
ConnectionError Traceback (most recent call last)
/tmp/ipython-input-2124964271.py in <cell line: 0>()
----> 1 epl_schedule = fbref.read_schedule()
4 frames
/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py in _download_and_save(self, url, filepath, var)
551 continue
552
--> 553 raise ConnectionError(f"Could not download {url}.")
554
555
ConnectionError: Could not download https://fbref.com/en/comps/.
Anyone with a help?
Hi Yohannes, Fbref increased their scraping protection a month ago, so soccerdata does not work since.
Any alternatives?
Nothing I can share at this point. But scraping using Selenium should still work.
longer deep dives and more python
Always want more football concepts. More python a plus too. I enjoyed this a lot still. Thank you for taking the time to write it up.
Thank you for taking the time to share your feedback 🙏
Unfortunately, nearly all scrapers or scraping methods on FBref.com aren't working anymore (Mar 15th, 2026). Correct me if I'm wrong.
Fbref dropped all its advanced data. And a few weeks before that the scrapers stopped working. So sad.
May I ask what alternatives do you have now? I personally go for Understat but that’s mostly about xG.
I just bought a Wyscout subscription. I do not think there are free alternatives that offer the level of detail of Fbref.
epl_schedule = fbref.read_schedule() returns the ff error: [12/15/25 09:01:24] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
1 of 5).
Traceback (most recent call last):
File "/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py",
line 525, in _download_and_save
response.raise_for_status()
File "/usr/local/lib/python3.12/dist-packages/requests/models.py",
line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:
https://fbref.com/en/comps/
[12/15/25 09:01:30] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
2 of 5).
Traceback (most recent call last):
File "/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py",
line 525, in _download_and_save
response.raise_for_status()
File "/usr/local/lib/python3.12/dist-packages/requests/models.py",
line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:
https://fbref.com/en/comps/
[12/15/25 09:01:36] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
3 of 5).
Traceback (most recent call last):
File "/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py",
line 525, in _download_and_save
response.raise_for_status()
File "/usr/local/lib/python3.12/dist-packages/requests/models.py",
line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:
https://fbref.com/en/comps/
[12/15/25 09:01:42] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
4 of 5).
Traceback (most recent call last):
File "/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py",
line 525, in _download_and_save
response.raise_for_status()
File "/usr/local/lib/python3.12/dist-packages/requests/models.py",
line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:
https://fbref.com/en/comps/
[12/15/25 09:01:48] ERROR Error while scraping https://fbref.com/en/comps/. Retrying... (attempt _common.py:545
5 of 5).
Traceback (most recent call last):
File "/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py",
line 525, in _download_and_save
response.raise_for_status()
File "/usr/local/lib/python3.12/dist-packages/requests/models.py",
line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:
https://fbref.com/en/comps/
---------------------------------------------------------------------------
ConnectionError Traceback (most recent call last)
/tmp/ipython-input-2124964271.py in <cell line: 0>()
----> 1 epl_schedule = fbref.read_schedule()
4 frames
/usr/local/lib/python3.12/dist-packages/soccerdata/_common.py in _download_and_save(self, url, filepath, var)
551 continue
552
--> 553 raise ConnectionError(f"Could not download {url}.")
554
555
ConnectionError: Could not download https://fbref.com/en/comps/.
Anyone with a help?
Hi Yohannes, Fbref increased their scraping protection a month ago, so soccerdata does not work since.
Any alternatives?
Nothing I can share at this point. But scraping using Selenium should still work.
longer deep dives and more python
Always want more football concepts. More python a plus too. I enjoyed this a lot still. Thank you for taking the time to write it up.
Thank you for taking the time to share your feedback 🙏