5dcd22ad22
Add scripts/scrape-wikipedia.ts that fetches all 22 World Cups (1930–2022) from English Wikipedia via MediaWiki API, handles group sub-pages, AET/penalty detection, and goal parsing, writing openfootball-format JSON to app/data/openfootball/. Rewrite scripts/seed.ts to read these local JSON files instead of the Kaggle CSV, producing 965 matches and 2716 goals with per-group assignments for all historical tournaments (enabling group standings on tournament pages). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1906 lines
34 KiB
JSON
1906 lines
34 KiB
JSON
{
|
|
"matches": [
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-06-30",
|
|
"time": "17:00",
|
|
"team1": "France",
|
|
"team2": "Argentina",
|
|
"score": {
|
|
"ft": [
|
|
4,
|
|
3
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Griezmann",
|
|
"minute": 13,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Pavard",
|
|
"minute": 57
|
|
},
|
|
{
|
|
"name": "Mbappé",
|
|
"minute": 64
|
|
},
|
|
{
|
|
"name": "Mbappé",
|
|
"minute": 68
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Di María",
|
|
"minute": 41
|
|
},
|
|
{
|
|
"name": "Mercado",
|
|
"minute": 48
|
|
},
|
|
{
|
|
"name": "Agüero",
|
|
"minute": 90,
|
|
"offset": 3
|
|
}
|
|
],
|
|
"ground": "Kazan Arena, Kazan"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-06-30",
|
|
"time": "21:00",
|
|
"team1": "Uruguay",
|
|
"team2": "Portugal",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Cavani",
|
|
"minute": 7
|
|
},
|
|
{
|
|
"name": "Cavani",
|
|
"minute": 62
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Pepe",
|
|
"minute": 55
|
|
}
|
|
],
|
|
"ground": "Fisht Olympic Stadium, Sochi"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-07-01",
|
|
"time": "17:00",
|
|
"team1": "Spain",
|
|
"team2": "Russia",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
2
|
|
],
|
|
"et": [
|
|
1,
|
|
1
|
|
],
|
|
"p": [
|
|
3,
|
|
4
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Ignashevich",
|
|
"minute": 12,
|
|
"owngoal": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Dzyuba",
|
|
"minute": 41,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-07-01",
|
|
"time": "21:00",
|
|
"team1": "Croatia",
|
|
"team2": "Denmark",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
],
|
|
"et": [
|
|
1,
|
|
1
|
|
],
|
|
"p": [
|
|
3,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Mandžukić",
|
|
"minute": 4
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "M. Jørgensen",
|
|
"minute": 1
|
|
}
|
|
],
|
|
"ground": "Nizhny Novgorod Stadium, Nizhny Novgorod"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-07-02",
|
|
"time": "18:00",
|
|
"team1": "Brazil",
|
|
"team2": "Mexico",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Neymar",
|
|
"minute": 51
|
|
},
|
|
{
|
|
"name": "Firmino",
|
|
"minute": 88
|
|
}
|
|
],
|
|
"ground": "Cosmos Arena, Samara"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-07-02",
|
|
"time": "21:00",
|
|
"team1": "Belgium",
|
|
"team2": "Japan",
|
|
"score": {
|
|
"ft": [
|
|
3,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Vertonghen",
|
|
"minute": 69
|
|
},
|
|
{
|
|
"name": "Fellaini",
|
|
"minute": 74
|
|
},
|
|
{
|
|
"name": "Chadli",
|
|
"minute": 90,
|
|
"offset": 4
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Haraguchi",
|
|
"minute": 48
|
|
},
|
|
{
|
|
"name": "Inui",
|
|
"minute": 52
|
|
}
|
|
],
|
|
"ground": "Rostov Arena, Rostov-on-Don"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-07-03",
|
|
"time": "17:00",
|
|
"team1": "Sweden",
|
|
"team2": "Switzerland",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Forsberg",
|
|
"minute": 66
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Round of 16",
|
|
"date": "2018-07-03",
|
|
"time": "21:00",
|
|
"team1": "Colombia",
|
|
"team2": "England",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
],
|
|
"et": [
|
|
1,
|
|
1
|
|
],
|
|
"p": [
|
|
3,
|
|
4
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Mina",
|
|
"minute": 90,
|
|
"offset": 3
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Kane",
|
|
"minute": 57,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Otkritie Arena, Moscow"
|
|
},
|
|
{
|
|
"round": "Quarter-finals",
|
|
"date": "2018-07-06",
|
|
"time": "17:00",
|
|
"team1": "Uruguay",
|
|
"team2": "France",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
2
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Varane",
|
|
"minute": 40
|
|
},
|
|
{
|
|
"name": "Griezmann",
|
|
"minute": 61
|
|
}
|
|
],
|
|
"ground": "Nizhny Novgorod Stadium, Nizhny Novgorod"
|
|
},
|
|
{
|
|
"round": "Quarter-finals",
|
|
"date": "2018-07-06",
|
|
"time": "21:00",
|
|
"team1": "Brazil",
|
|
"team2": "Belgium",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Renato Augusto",
|
|
"minute": 76
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Fernandinho",
|
|
"minute": 13,
|
|
"owngoal": true
|
|
},
|
|
{
|
|
"name": "De Bruyne",
|
|
"minute": 31
|
|
}
|
|
],
|
|
"ground": "Kazan Arena, Kazan"
|
|
},
|
|
{
|
|
"round": "Quarter-finals",
|
|
"date": "2018-07-07",
|
|
"time": "18:00",
|
|
"team1": "Sweden",
|
|
"team2": "England",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
2
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Maguire",
|
|
"minute": 30
|
|
},
|
|
{
|
|
"name": "Alli",
|
|
"minute": 59
|
|
}
|
|
],
|
|
"ground": "Cosmos Arena, Samara"
|
|
},
|
|
{
|
|
"round": "Quarter-finals",
|
|
"date": "2018-07-07",
|
|
"time": "21:00",
|
|
"team1": "Russia",
|
|
"team2": "Croatia",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
],
|
|
"et": [
|
|
2,
|
|
2
|
|
],
|
|
"p": [
|
|
3,
|
|
4
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Cheryshev",
|
|
"minute": 31
|
|
},
|
|
{
|
|
"name": "Fernandes",
|
|
"minute": 115
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Kramarić",
|
|
"minute": 39
|
|
},
|
|
{
|
|
"name": "Vida",
|
|
"minute": 101
|
|
}
|
|
],
|
|
"ground": "Fisht Olympic Stadium, Sochi"
|
|
},
|
|
{
|
|
"round": "Semi-finals",
|
|
"date": "2018-07-10",
|
|
"time": "21:00",
|
|
"team1": "France",
|
|
"team2": "Belgium",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Umtiti",
|
|
"minute": 51
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Semi-finals",
|
|
"date": "2018-07-11",
|
|
"time": "21:00",
|
|
"team1": "Croatia",
|
|
"team2": "England",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
],
|
|
"et": [
|
|
2,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Perišić",
|
|
"minute": 68
|
|
},
|
|
{
|
|
"name": "Mandžukić",
|
|
"minute": 109
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Trippier",
|
|
"minute": 5
|
|
}
|
|
],
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Third-place match",
|
|
"date": "2018-07-14",
|
|
"time": "17:00",
|
|
"team1": "Belgium",
|
|
"team2": "England",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Meunier",
|
|
"minute": 4
|
|
},
|
|
{
|
|
"name": "E. Hazard",
|
|
"minute": 82
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Final",
|
|
"date": "2018-07-15",
|
|
"time": "18:00",
|
|
"team1": "France",
|
|
"team2": "Croatia",
|
|
"score": {
|
|
"ft": [
|
|
4,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Mandžukić",
|
|
"minute": 18,
|
|
"owngoal": true
|
|
},
|
|
{
|
|
"name": "Griezmann",
|
|
"minute": 38,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Pogba",
|
|
"minute": 59
|
|
},
|
|
{
|
|
"name": "Mbappé",
|
|
"minute": 65
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Perišić",
|
|
"minute": 28
|
|
},
|
|
{
|
|
"name": "Mandžukić",
|
|
"minute": 69
|
|
}
|
|
],
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group A",
|
|
"date": "2018-06-14",
|
|
"time": "18:00",
|
|
"team1": "Russia",
|
|
"team2": "Saudi Arabia",
|
|
"score": {
|
|
"ft": [
|
|
5,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Gazinsky",
|
|
"minute": 12
|
|
},
|
|
{
|
|
"name": "Cheryshev",
|
|
"minute": 43
|
|
},
|
|
{
|
|
"name": "Cheryshev",
|
|
"minute": 90,
|
|
"offset": 1
|
|
},
|
|
{
|
|
"name": "Dzyuba",
|
|
"minute": 71
|
|
},
|
|
{
|
|
"name": "Golovin",
|
|
"minute": 90,
|
|
"offset": 4
|
|
}
|
|
],
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group A",
|
|
"date": "2018-06-15",
|
|
"time": "17:00",
|
|
"team1": "Egypt",
|
|
"team2": "Uruguay",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Giménez",
|
|
"minute": 89
|
|
}
|
|
],
|
|
"ground": "Central Stadium, Yekaterinburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group A",
|
|
"date": "2018-06-19",
|
|
"time": "21:00",
|
|
"team1": "Russia",
|
|
"team2": "Egypt",
|
|
"score": {
|
|
"ft": [
|
|
3,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Fathy",
|
|
"minute": 47,
|
|
"owngoal": true
|
|
},
|
|
{
|
|
"name": "Cheryshev",
|
|
"minute": 59
|
|
},
|
|
{
|
|
"name": "Dzyuba",
|
|
"minute": 62
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Salah",
|
|
"minute": 73,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group A",
|
|
"date": "2018-06-20",
|
|
"time": "18:00",
|
|
"team1": "Uruguay",
|
|
"team2": "Saudi Arabia",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Suárez",
|
|
"minute": 23
|
|
}
|
|
],
|
|
"ground": "Rostov Arena, Rostov-on-Don"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group A",
|
|
"date": "2018-06-25",
|
|
"time": "18:00",
|
|
"team1": "Uruguay",
|
|
"team2": "Russia",
|
|
"score": {
|
|
"ft": [
|
|
3,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Suárez",
|
|
"minute": 10
|
|
},
|
|
{
|
|
"name": "Cheryshev",
|
|
"minute": 23,
|
|
"owngoal": true
|
|
},
|
|
{
|
|
"name": "Cavani",
|
|
"minute": 90
|
|
}
|
|
],
|
|
"ground": "Cosmos Arena, Samara"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group A",
|
|
"date": "2018-06-25",
|
|
"time": "17:00",
|
|
"team1": "Saudi Arabia",
|
|
"team2": "Egypt",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Al-Faraj",
|
|
"minute": 45,
|
|
"offset": 6,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Al-Dawsari",
|
|
"minute": 90,
|
|
"offset": 5
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Salah",
|
|
"minute": 22
|
|
}
|
|
],
|
|
"ground": "Volgograd Arena, Volgograd"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group B",
|
|
"date": "2018-06-15",
|
|
"time": "18:00",
|
|
"team1": "Morocco",
|
|
"team2": "Iran",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Bouhaddouz",
|
|
"minute": 90,
|
|
"offset": 5,
|
|
"owngoal": true
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group B",
|
|
"date": "2018-06-15",
|
|
"time": "21:00",
|
|
"team1": "Portugal",
|
|
"team2": "Spain",
|
|
"score": {
|
|
"ft": [
|
|
3,
|
|
3
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Ronaldo",
|
|
"minute": 4,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Ronaldo",
|
|
"minute": 44
|
|
},
|
|
{
|
|
"name": "Ronaldo",
|
|
"minute": 88
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Costa",
|
|
"minute": 24
|
|
},
|
|
{
|
|
"name": "Costa",
|
|
"minute": 55
|
|
},
|
|
{
|
|
"name": "Nacho",
|
|
"minute": 58
|
|
}
|
|
],
|
|
"ground": "Fisht Olympic Stadium, Sochi"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group B",
|
|
"date": "2018-06-20",
|
|
"time": "15:00",
|
|
"team1": "Portugal",
|
|
"team2": "Morocco",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Ronaldo",
|
|
"minute": 4
|
|
}
|
|
],
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group B",
|
|
"date": "2018-06-20",
|
|
"time": "21:00",
|
|
"team1": "Iran",
|
|
"team2": "Spain",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Costa",
|
|
"minute": 54
|
|
}
|
|
],
|
|
"ground": "Kazan Arena, Kazan"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group B",
|
|
"date": "2018-06-25",
|
|
"time": "21:00",
|
|
"team1": "Iran",
|
|
"team2": "Portugal",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Ansarifard",
|
|
"minute": 90,
|
|
"offset": 3,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Quaresma",
|
|
"minute": 45
|
|
}
|
|
],
|
|
"ground": "Mordovia Arena, Saransk"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group B",
|
|
"date": "2018-06-25",
|
|
"time": "20:00",
|
|
"team1": "Spain",
|
|
"team2": "Morocco",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Isco",
|
|
"minute": 19
|
|
},
|
|
{
|
|
"name": "Aspas",
|
|
"minute": 90,
|
|
"offset": 1
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Boutaïb",
|
|
"minute": 14
|
|
},
|
|
{
|
|
"name": "En-Nesyri",
|
|
"minute": 81
|
|
}
|
|
],
|
|
"ground": "Kaliningrad Stadium, Kaliningrad"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group C",
|
|
"date": "2018-06-16",
|
|
"time": "13:00",
|
|
"team1": "France",
|
|
"team2": "Australia",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Griezmann",
|
|
"minute": 58,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Behich",
|
|
"minute": 81,
|
|
"owngoal": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Jedinak",
|
|
"minute": 62,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Kazan Arena, Kazan"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group C",
|
|
"date": "2018-06-16",
|
|
"time": "19:00",
|
|
"team1": "Peru",
|
|
"team2": "Denmark",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Poulsen",
|
|
"minute": 59
|
|
}
|
|
],
|
|
"ground": "Mordovia Arena, Saransk"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group C",
|
|
"date": "2018-06-21",
|
|
"time": "16:00",
|
|
"team1": "Denmark",
|
|
"team2": "Australia",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Eriksen",
|
|
"minute": 7
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Jedinak",
|
|
"minute": 38,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Cosmos Arena, Samara"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group C",
|
|
"date": "2018-06-21",
|
|
"time": "20:00",
|
|
"team1": "France",
|
|
"team2": "Peru",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Mbappé",
|
|
"minute": 34
|
|
}
|
|
],
|
|
"ground": "Central Stadium, Yekaterinburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group C",
|
|
"date": "2018-06-26",
|
|
"time": "17:00",
|
|
"team1": "Denmark",
|
|
"team2": "France",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
0
|
|
]
|
|
},
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group C",
|
|
"date": "2018-06-26",
|
|
"time": "17:00",
|
|
"team1": "Australia",
|
|
"team2": "Peru",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
2
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Carrillo",
|
|
"minute": 18
|
|
},
|
|
{
|
|
"name": "Guerrero",
|
|
"minute": 50
|
|
}
|
|
],
|
|
"ground": "Fisht Olympic Stadium, Sochi"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group D",
|
|
"date": "2018-06-16",
|
|
"time": "16:00",
|
|
"team1": "Argentina",
|
|
"team2": "Iceland",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Agüero",
|
|
"minute": 19
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Finnbogason",
|
|
"minute": 23
|
|
}
|
|
],
|
|
"ground": "Otkritie Arena, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group D",
|
|
"date": "2018-06-16",
|
|
"time": "21:00",
|
|
"team1": "Croatia",
|
|
"team2": "Nigeria",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Etebo",
|
|
"minute": 32,
|
|
"owngoal": true
|
|
},
|
|
{
|
|
"name": "Modrić",
|
|
"minute": 71,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Kaliningrad Stadium, Kaliningrad"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group D",
|
|
"date": "2018-06-21",
|
|
"time": "21:00",
|
|
"team1": "Argentina",
|
|
"team2": "Croatia",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
3
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Rebić",
|
|
"minute": 53
|
|
},
|
|
{
|
|
"name": "Modrić",
|
|
"minute": 80
|
|
},
|
|
{
|
|
"name": "Rakitić",
|
|
"minute": 90,
|
|
"offset": 1
|
|
}
|
|
],
|
|
"ground": "Nizhny Novgorod Stadium, Nizhny Novgorod"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group D",
|
|
"date": "2018-06-22",
|
|
"time": "18:00",
|
|
"team1": "Nigeria",
|
|
"team2": "Iceland",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Musa",
|
|
"minute": 49
|
|
},
|
|
{
|
|
"name": "Musa",
|
|
"minute": 75
|
|
}
|
|
],
|
|
"ground": "Volgograd Arena, Volgograd"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group D",
|
|
"date": "2018-06-26",
|
|
"time": "21:00",
|
|
"team1": "Nigeria",
|
|
"team2": "Argentina",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Moses",
|
|
"minute": 51,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Messi",
|
|
"minute": 14
|
|
},
|
|
{
|
|
"name": "Rojo",
|
|
"minute": 86
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group D",
|
|
"date": "2018-06-26",
|
|
"time": "21:00",
|
|
"team1": "Iceland",
|
|
"team2": "Croatia",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Sigurðsson",
|
|
"minute": 76,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Badelj",
|
|
"minute": 53
|
|
},
|
|
{
|
|
"name": "Perišić",
|
|
"minute": 90
|
|
}
|
|
],
|
|
"ground": "Rostov Arena, Rostov-on-Don"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group E",
|
|
"date": "2018-06-17",
|
|
"time": "16:00",
|
|
"team1": "Costa Rica",
|
|
"team2": "Serbia",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Kolarov",
|
|
"minute": 56
|
|
}
|
|
],
|
|
"ground": "Cosmos Arena, Samara"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group E",
|
|
"date": "2018-06-17",
|
|
"time": "21:00",
|
|
"team1": "Brazil",
|
|
"team2": "Switzerland",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Coutinho",
|
|
"minute": 20
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Zuber",
|
|
"minute": 50
|
|
}
|
|
],
|
|
"ground": "Rostov Arena, Rostov-on-Don"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group E",
|
|
"date": "2018-06-22",
|
|
"time": "15:00",
|
|
"team1": "Brazil",
|
|
"team2": "Costa Rica",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Coutinho",
|
|
"minute": 90,
|
|
"offset": 1
|
|
},
|
|
{
|
|
"name": "Neymar",
|
|
"minute": 90,
|
|
"offset": 7
|
|
}
|
|
],
|
|
"ground": "Krestovsky Stadium, Saint Petersburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group E",
|
|
"date": "2018-06-22",
|
|
"time": "20:00",
|
|
"team1": "Serbia",
|
|
"team2": "Switzerland",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Mitrović",
|
|
"minute": 5
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Xhaka",
|
|
"minute": 52
|
|
},
|
|
{
|
|
"name": "Shaqiri",
|
|
"minute": 90
|
|
}
|
|
],
|
|
"ground": "Kaliningrad Stadium, Kaliningrad"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group E",
|
|
"date": "2018-06-27",
|
|
"time": "21:00",
|
|
"team1": "Serbia",
|
|
"team2": "Brazil",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
2
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Paulinho",
|
|
"minute": 36
|
|
},
|
|
{
|
|
"name": "Thiago Silva",
|
|
"minute": 68
|
|
}
|
|
],
|
|
"ground": "Otkritie Arena, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group E",
|
|
"date": "2018-06-27",
|
|
"time": "21:00",
|
|
"team1": "Switzerland",
|
|
"team2": "Costa Rica",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Džemaili",
|
|
"minute": 31
|
|
},
|
|
{
|
|
"name": "Drmić",
|
|
"minute": 88
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Waston",
|
|
"minute": 56
|
|
},
|
|
{
|
|
"name": "Sommer",
|
|
"minute": 90,
|
|
"offset": 3,
|
|
"owngoal": true
|
|
}
|
|
],
|
|
"ground": "Nizhny Novgorod Stadium, Nizhny Novgorod"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group F",
|
|
"date": "2018-06-17",
|
|
"time": "18:00",
|
|
"team1": "Germany",
|
|
"team2": "Mexico",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Lozano",
|
|
"minute": 35
|
|
}
|
|
],
|
|
"ground": "Luzhniki Stadium, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group F",
|
|
"date": "2018-06-18",
|
|
"time": "15:00",
|
|
"team1": "Sweden",
|
|
"team2": "South Korea",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Granqvist",
|
|
"minute": 65,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"ground": "Nizhny Novgorod Stadium, Nizhny Novgorod"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group F",
|
|
"date": "2018-06-23",
|
|
"time": "18:00",
|
|
"team1": "South Korea",
|
|
"team2": "Mexico",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Son Heung-min",
|
|
"minute": 90,
|
|
"offset": 3
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Vela",
|
|
"minute": 26,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Hernández",
|
|
"minute": 66
|
|
}
|
|
],
|
|
"ground": "Rostov Arena, Rostov-on-Don"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group F",
|
|
"date": "2018-06-23",
|
|
"time": "21:00",
|
|
"team1": "Germany",
|
|
"team2": "Sweden",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Reus",
|
|
"minute": 48
|
|
},
|
|
{
|
|
"name": "Kroos",
|
|
"minute": 90,
|
|
"offset": 5
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Toivonen",
|
|
"minute": 32
|
|
}
|
|
],
|
|
"ground": "Fisht Olympic Stadium, Sochi"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group F",
|
|
"date": "2018-06-27",
|
|
"time": "17:00",
|
|
"team1": "South Korea",
|
|
"team2": "Germany",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Kim Young-gwon",
|
|
"minute": 90,
|
|
"offset": 2
|
|
},
|
|
{
|
|
"name": "Son Heung-min",
|
|
"minute": 90,
|
|
"offset": 6
|
|
}
|
|
],
|
|
"ground": "Kazan Arena, Kazan"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group F",
|
|
"date": "2018-06-27",
|
|
"time": "19:00",
|
|
"team1": "Mexico",
|
|
"team2": "Sweden",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
3
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Augustinsson",
|
|
"minute": 50
|
|
},
|
|
{
|
|
"name": "Granqvist",
|
|
"minute": 62,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Álvarez",
|
|
"minute": 74,
|
|
"owngoal": true
|
|
}
|
|
],
|
|
"ground": "Central Stadium, Yekaterinburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group G",
|
|
"date": "2018-06-18",
|
|
"time": "18:00",
|
|
"team1": "Belgium",
|
|
"team2": "Panama",
|
|
"score": {
|
|
"ft": [
|
|
3,
|
|
0
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Mertens",
|
|
"minute": 47
|
|
},
|
|
{
|
|
"name": "Lukaku",
|
|
"minute": 69
|
|
},
|
|
{
|
|
"name": "Lukaku",
|
|
"minute": 75
|
|
}
|
|
],
|
|
"ground": "Fisht Olympic Stadium, Sochi"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group G",
|
|
"date": "2018-06-18",
|
|
"time": "21:00",
|
|
"team1": "Tunisia",
|
|
"team2": "England",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Sassi",
|
|
"minute": 35,
|
|
"penalty": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Kane",
|
|
"minute": 11
|
|
},
|
|
{
|
|
"name": "Kane",
|
|
"minute": 90,
|
|
"offset": 1
|
|
}
|
|
],
|
|
"ground": "Volgograd Arena, Volgograd"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group G",
|
|
"date": "2018-06-23",
|
|
"time": "15:00",
|
|
"team1": "Belgium",
|
|
"team2": "Tunisia",
|
|
"score": {
|
|
"ft": [
|
|
5,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "E. Hazard",
|
|
"minute": 6,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "E. Hazard",
|
|
"minute": 51
|
|
},
|
|
{
|
|
"name": "Lukaku",
|
|
"minute": 16
|
|
},
|
|
{
|
|
"name": "Lukaku",
|
|
"minute": 45,
|
|
"offset": 3
|
|
},
|
|
{
|
|
"name": "Batshuayi",
|
|
"minute": 90
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Bronn",
|
|
"minute": 18
|
|
},
|
|
{
|
|
"name": "Khazri",
|
|
"minute": 90,
|
|
"offset": 3
|
|
}
|
|
],
|
|
"ground": "Otkritie Arena, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group G",
|
|
"date": "2018-06-24",
|
|
"time": "15:00",
|
|
"team1": "England",
|
|
"team2": "Panama",
|
|
"score": {
|
|
"ft": [
|
|
6,
|
|
1
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Stones",
|
|
"minute": 8
|
|
},
|
|
{
|
|
"name": "Stones",
|
|
"minute": 40
|
|
},
|
|
{
|
|
"name": "Kane",
|
|
"minute": 22,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Kane",
|
|
"minute": 45,
|
|
"offset": 1,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Kane",
|
|
"minute": 62
|
|
},
|
|
{
|
|
"name": "Lingard",
|
|
"minute": 36
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Baloy",
|
|
"minute": 78
|
|
}
|
|
],
|
|
"ground": "Nizhny Novgorod Stadium, Nizhny Novgorod"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group G",
|
|
"date": "2018-06-28",
|
|
"time": "20:00",
|
|
"team1": "England",
|
|
"team2": "Belgium",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Januzaj",
|
|
"minute": 51
|
|
}
|
|
],
|
|
"ground": "Kaliningrad Stadium, Kaliningrad"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group G",
|
|
"date": "2018-06-28",
|
|
"time": "21:00",
|
|
"team1": "Panama",
|
|
"team2": "Tunisia",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Meriah",
|
|
"minute": 33,
|
|
"owngoal": true
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "F. Ben Youssef",
|
|
"minute": 51
|
|
},
|
|
{
|
|
"name": "Khazri",
|
|
"minute": 66
|
|
}
|
|
],
|
|
"ground": "Mordovia Arena, Saransk"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group H",
|
|
"date": "2018-06-19",
|
|
"time": "15:00",
|
|
"team1": "Colombia",
|
|
"team2": "Japan",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Quintero",
|
|
"minute": 39
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Kagawa",
|
|
"minute": 6,
|
|
"penalty": true
|
|
},
|
|
{
|
|
"name": "Osako",
|
|
"minute": 73
|
|
}
|
|
],
|
|
"ground": "Mordovia Arena, Saransk"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group H",
|
|
"date": "2018-06-19",
|
|
"time": "18:00",
|
|
"team1": "Poland",
|
|
"team2": "Senegal",
|
|
"score": {
|
|
"ft": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Krychowiak",
|
|
"minute": 86
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Cionek",
|
|
"minute": 37,
|
|
"owngoal": true
|
|
},
|
|
{
|
|
"name": "Niang",
|
|
"minute": 60
|
|
}
|
|
],
|
|
"ground": "Otkritie Arena, Moscow"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group H",
|
|
"date": "2018-06-24",
|
|
"time": "20:00",
|
|
"team1": "Japan",
|
|
"team2": "Senegal",
|
|
"score": {
|
|
"ft": [
|
|
2,
|
|
2
|
|
]
|
|
},
|
|
"goals1": [
|
|
{
|
|
"name": "Inui",
|
|
"minute": 34
|
|
},
|
|
{
|
|
"name": "Honda",
|
|
"minute": 78
|
|
}
|
|
],
|
|
"goals2": [
|
|
{
|
|
"name": "Mané",
|
|
"minute": 11
|
|
},
|
|
{
|
|
"name": "Wagué",
|
|
"minute": 71
|
|
}
|
|
],
|
|
"ground": "Central Stadium, Yekaterinburg"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group H",
|
|
"date": "2018-06-24",
|
|
"time": "21:00",
|
|
"team1": "Poland",
|
|
"team2": "Colombia",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
3
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Mina",
|
|
"minute": 40
|
|
},
|
|
{
|
|
"name": "Falcao",
|
|
"minute": 70
|
|
},
|
|
{
|
|
"name": "Ju. Cuadrado",
|
|
"minute": 75
|
|
}
|
|
],
|
|
"ground": "Kazan Arena, Kazan"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group H",
|
|
"date": "2018-06-28",
|
|
"time": "17:00",
|
|
"team1": "Japan",
|
|
"team2": "Poland",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Bednarek",
|
|
"minute": 59
|
|
}
|
|
],
|
|
"ground": "Volgograd Arena, Volgograd"
|
|
},
|
|
{
|
|
"round": "Group stage",
|
|
"group": "Group H",
|
|
"date": "2018-06-28",
|
|
"time": "18:00",
|
|
"team1": "Senegal",
|
|
"team2": "Colombia",
|
|
"score": {
|
|
"ft": [
|
|
0,
|
|
1
|
|
]
|
|
},
|
|
"goals2": [
|
|
{
|
|
"name": "Mina",
|
|
"minute": 74
|
|
}
|
|
],
|
|
"ground": "Cosmos Arena, Samara"
|
|
}
|
|
]
|
|
} |