
Data scraping into MySQL database: UK football leagues, clubs and players.
- or -
Post a project like this£300(approx. $415)
- Posted:
- Proposals: 11
- Remote
- #1405060
- Expired
Working on .NET core, react, Azure, AWS, .NET, C#, WPF, Oracle , SSIS, react native, Design

7 years of industry experience in Software Development JAVA , PYTHON, DATA MINING TOOLS, PLSQL AND MANY MORE..
1601804558551364797146884813875941204810129357414770549618463614351066340
Description
Experience Level: Expert
Estimated project duration: 1 - 2 weeks
General information for the business: I need football data providing in a database.
Database management system (DBMS): MySQL
Description of requirements/functionality: Simply put, I have a database design that holds the names of Players, the names of Clubs and the names of Leagues, so they can be recorded for each year.
I want a historical record of all football clubs in the UK, as many years back as possible (5 years is fine, 15 years would be amazing!), with player data of at least the top clubs. The database is relational, so clubs and players can be queried on specific years.
All leagues are listed here: https://en.wikipedia.org/wiki/English_football_league_system
For player data, the more data provided the better, but only the top 7 levels of leagues are required to have player data (Northern/Southern/Isthmian Premier League Premier Division and above).
Tables:
+ League. Simply the name of the league/division.
+ Club. Again, just the name of the club.
+ League_has_Club. A record linking a club and a league on a specific year, and the club's finishing position.
+ Player. The name of a player and his position - more information like nationality, age, etc. is a bonus.
+ Club_has_Player. A record linking a player to a club on a specific year.
This database design means that as players change clubs, and as clubs change leagues, the records can relate and be queried nicely.
That's all, any questions please let me know!
Extra notes: Please see attached empty database, providing the foreign keys required.
Example query - select the players who's club finished 3rd in the National League South in 2014:
select
`first_name`, `last_name`
from `player`
inner join `club_has_player`
on `player`.`id_player` = `club_has_player`.`id_player`
inner join `club`
on `club_has_player`.`id_club` = `club`.`id_club`
inner join `league_has_club`
on `club`.`id_club` = `league_has_club`.`id_club`
inner join `league`
on `league_has_club`.`id_league` = `league`.`id_league`
where `league_has_club`.`position` = 3
and `league_has_club`.`year` = 2014
and `club_has_player`.`year` = 2014
and `league`.`name` = "National League South"
Result:
Paul Agu
Seb Brown
Josh Pelling
Joe Anderson
Jack Holland
Sam Long
Callum McNaughton
Paul Rodgers
Rob Swaine
Emmanuel Ugo Udoji
Adam Birchall
Louis Dennis
Ali Fuseini
Pierre Joseph-Dubois
Reece Prestedge
Damian Scannell
Danny Waldren
Moses Ademola
Jamie Slabber
Jordan Robertson
Database management system (DBMS): MySQL
Description of requirements/functionality: Simply put, I have a database design that holds the names of Players, the names of Clubs and the names of Leagues, so they can be recorded for each year.
I want a historical record of all football clubs in the UK, as many years back as possible (5 years is fine, 15 years would be amazing!), with player data of at least the top clubs. The database is relational, so clubs and players can be queried on specific years.
All leagues are listed here: https://en.wikipedia.org/wiki/English_football_league_system
For player data, the more data provided the better, but only the top 7 levels of leagues are required to have player data (Northern/Southern/Isthmian Premier League Premier Division and above).
Tables:
+ League. Simply the name of the league/division.
+ Club. Again, just the name of the club.
+ League_has_Club. A record linking a club and a league on a specific year, and the club's finishing position.
+ Player. The name of a player and his position - more information like nationality, age, etc. is a bonus.
+ Club_has_Player. A record linking a player to a club on a specific year.
This database design means that as players change clubs, and as clubs change leagues, the records can relate and be queried nicely.
That's all, any questions please let me know!
Extra notes: Please see attached empty database, providing the foreign keys required.
Example query - select the players who's club finished 3rd in the National League South in 2014:
select
`first_name`, `last_name`
from `player`
inner join `club_has_player`
on `player`.`id_player` = `club_has_player`.`id_player`
inner join `club`
on `club_has_player`.`id_club` = `club`.`id_club`
inner join `league_has_club`
on `club`.`id_club` = `league_has_club`.`id_club`
inner join `league`
on `league_has_club`.`id_league` = `league`.`id_league`
where `league_has_club`.`position` = 3
and `league_has_club`.`year` = 2014
and `club_has_player`.`year` = 2014
and `league`.`name` = "National League South"
Result:
Paul Agu
Seb Brown
Josh Pelling
Joe Anderson
Jack Holland
Sam Long
Callum McNaughton
Paul Rodgers
Rob Swaine
Emmanuel Ugo Udoji
Adam Birchall
Louis Dennis
Ali Fuseini
Pierre Joseph-Dubois
Reece Prestedge
Damian Scannell
Danny Waldren
Moses Ademola
Jamie Slabber
Jordan Robertson
Greg B.
92% (20)Projects Completed
19
Freelancers worked with
15
Projects awarded
8%
Last project
21 Aug 2025
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-

Hi, do you still need help with it?
-

Hi Greg,
Do you know of a source for this information or are you proposing to use wikipedia? It might be possible to spider a scrape out from the list of clubs in each league, and then for each player currently at that club you could find all their previous clubs from their wikipedia page but there are potentially players not on wikipedia or that have inaccurate information. Also, players that are no longer at a club currently in the leagues would be missed, so an alternative list of these players would be required to search wikipedia with.
279740276639
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies