Files
valknar d37ebe201e refactor: consolidate data/ into single root directory, fix historical player names
Merge data/wikipedia/{year}/ into data/{year}/ so there is a single
canonical location for World Cup JSON files. Update scrape and seed
scripts to use data/ instead of data/wikipedia/.

Re-scraped all 22 years (1930-2022) with fixed player name extraction
(full name from <a title="..."> rather than abbreviated display text)
so historical goals now show e.g. "Thomas Müller" not "Müller".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 18:27:35 +02:00

1484 lines
28 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"matches": [
{
"round": "Round of 16",
"date": "1986-06-15",
"time": "12:00",
"team1": "Mexico",
"team2": "Bulgaria",
"score": {
"ft": [
2,
0
]
},
"goals1": [
{
"name": "Manuel Negrete Arias",
"minute": 34
},
{
"name": "Raúl Servín",
"minute": 61
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Round of 16",
"date": "1986-06-15",
"time": "16:00",
"team1": "Soviet Union",
"team2": "Belgium",
"score": {
"ft": [
2,
2
],
"et": [
3,
4
]
},
"goals1": [
{
"name": "Igor Belanov",
"minute": 27
},
{
"name": "Igor Belanov",
"minute": 70
},
{
"name": "Igor Belanov",
"minute": 111,
"penalty": true
}
],
"goals2": [
{
"name": "Enzo Scifo",
"minute": 56
},
{
"name": "Jan Ceulemans",
"minute": 77
},
{
"name": "Stéphane Demol",
"minute": 102
},
{
"name": "Nico Claesen",
"minute": 110
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Round of 16",
"date": "1986-06-16",
"time": "12:00",
"team1": "Brazil",
"team2": "Poland",
"score": {
"ft": [
4,
0
]
},
"goals1": [
{
"name": "Sócrates",
"minute": 30,
"penalty": true
},
{
"name": "Josimar",
"minute": 55
},
{
"name": "Edino Nazareth Filho",
"minute": 79
},
{
"name": "Careca",
"minute": 83,
"penalty": true
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Round of 16",
"date": "1986-06-16",
"time": "16:00",
"team1": "Argentina",
"team2": "Uruguay",
"score": {
"ft": [
1,
0
]
},
"goals1": [
{
"name": "Pedro Pasculli",
"minute": 42
}
],
"ground": "Estadio Cuauhtémoc, Puebla"
},
{
"round": "Round of 16",
"date": "1986-06-17",
"time": "12:00",
"team1": "Italy",
"team2": "France",
"score": {
"ft": [
0,
2
]
},
"goals2": [
{
"name": "Michel Platini",
"minute": 15
},
{
"name": "Yannick Stopyra",
"minute": 57
}
],
"ground": "Estadio Olímpico Universitario, Mexico City"
},
{
"round": "Round of 16",
"date": "1986-06-17",
"time": "16:00",
"team1": "Morocco",
"team2": "Germany",
"score": {
"ft": [
0,
1
]
},
"goals2": [
{
"name": "Lothar Matthäus",
"minute": 88
}
],
"ground": "Estadio Universitario, San Nicolás de los Garza"
},
{
"round": "Round of 16",
"date": "1986-06-18",
"time": "12:00",
"team1": "England",
"team2": "Paraguay",
"score": {
"ft": [
3,
0
]
},
"goals1": [
{
"name": "Gary Lineker",
"minute": 31
},
{
"name": "Gary Lineker",
"minute": 73
},
{
"name": "Peter Beardsley",
"minute": 56
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Round of 16",
"date": "1986-06-18",
"time": "16:00",
"team1": "Denmark",
"team2": "Spain",
"score": {
"ft": [
1,
5
]
},
"goals1": [
{
"name": "Jesper Olsen",
"minute": 33,
"penalty": true
}
],
"goals2": [
{
"name": "Emilio Butragueño",
"minute": 43
},
{
"name": "Emilio Butragueño",
"minute": 56
},
{
"name": "Emilio Butragueño",
"minute": 80
},
{
"name": "Emilio Butragueño",
"minute": 88,
"penalty": true
},
{
"name": "Andoni Goikoetxea Olaskoaga",
"minute": 68,
"penalty": true
}
],
"ground": "Estadio La Corregidora, Querétaro"
},
{
"round": "Quarter-finals",
"date": "1986-06-21",
"time": "12:00",
"team1": "Brazil",
"team2": "France",
"score": {
"ft": [
1,
1
],
"et": [
1,
1
],
"p": [
3,
4
]
},
"goals1": [
{
"name": "Careca",
"minute": 17
}
],
"goals2": [
{
"name": "Michel Platini",
"minute": 40
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Quarter-finals",
"date": "1986-06-21",
"time": "16:00",
"team1": "Germany",
"team2": "Mexico",
"score": {
"ft": [
0,
0
],
"et": [
0,
0
],
"p": [
4,
1
]
},
"ground": "Estadio Universitario, San Nicolás de los Garza"
},
{
"round": "Quarter-finals",
"date": "1986-06-22",
"time": "12:00",
"team1": "Argentina",
"team2": "England",
"score": {
"ft": [
2,
1
]
},
"goals1": [
{
"name": "Diego Maradona",
"minute": 51
},
{
"name": "Diego Maradona",
"minute": 55
}
],
"goals2": [
{
"name": "Gary Lineker",
"minute": 81
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Quarter-finals",
"date": "1986-06-22",
"time": "16:00",
"team1": "Spain",
"team2": "Belgium",
"score": {
"ft": [
1,
1
],
"et": [
1,
1
],
"p": [
4,
5
]
},
"goals1": [
{
"name": "Juan Antonio Señor",
"minute": 85
}
],
"goals2": [
{
"name": "Jan Ceulemans",
"minute": 35
}
],
"ground": "Estadio Cuauhtémoc, Puebla"
},
{
"round": "Semi-finals",
"date": "1986-06-25",
"time": "12:00",
"team1": "France",
"team2": "Germany",
"score": {
"ft": [
0,
2
]
},
"goals2": [
{
"name": "Andreas Brehme",
"minute": 9
},
{
"name": "Rudi Völler",
"minute": 90
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Semi-finals",
"date": "1986-06-25",
"time": "16:00",
"team1": "Argentina",
"team2": "Belgium",
"score": {
"ft": [
2,
0
]
},
"goals1": [
{
"name": "Diego Maradona",
"minute": 51
},
{
"name": "Diego Maradona",
"minute": 63
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Third-place match",
"date": "1986-06-28",
"time": "12:00",
"team1": "Belgium",
"team2": "France",
"score": {
"ft": [
2,
2
],
"et": [
2,
4
]
},
"goals1": [
{
"name": "Jan Ceulemans",
"minute": 11
},
{
"name": "Nico Claesen",
"minute": 73
}
],
"goals2": [
{
"name": "Jean-Marc Ferreri",
"minute": 27
},
{
"name": "Jean-Pierre Papin",
"minute": 43
},
{
"name": "Bernard Genghini",
"minute": 104
},
{
"name": "Manuel Amoros",
"minute": 111,
"penalty": true
}
],
"ground": "Estadio Cuauhtémoc, Puebla"
},
{
"round": "Final",
"date": "1986-06-29",
"time": "12:00",
"team1": "Argentina",
"team2": "Germany",
"score": {
"ft": [
3,
2
]
},
"goals1": [
{
"name": "José Luis Brown",
"minute": 23
},
{
"name": "Jorge Valdano",
"minute": 56
},
{
"name": "Jorge Burruchaga",
"minute": 84
}
],
"goals2": [
{
"name": "Karl-Heinz Rummenigge",
"minute": 74
},
{
"name": "Rudi Völler",
"minute": 81
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Group stage",
"group": "Group A",
"date": "1986-05-31",
"time": "12:00",
"team1": "Bulgaria",
"team2": "Italy",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Nasko Sirakov",
"minute": 85
}
],
"goals2": [
{
"name": "Alessandro Altobelli",
"minute": 44
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Group stage",
"group": "Group A",
"date": "1986-06-02",
"time": "12:00",
"team1": "Argentina",
"team2": "South Korea",
"score": {
"ft": [
3,
1
]
},
"goals1": [
{
"name": "Jorge Valdano",
"minute": 6
},
{
"name": "Jorge Valdano",
"minute": 46
},
{
"name": "Oscar Ruggeri",
"minute": 18
}
],
"goals2": [
{
"name": "Park Chang-Sun",
"minute": 73
}
],
"ground": "Estadio Olímpico Universitario, Mexico City"
},
{
"round": "Group stage",
"group": "Group A",
"date": "1986-06-05",
"time": "12:00",
"team1": "Italy",
"team2": "Argentina",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Alessandro Altobelli",
"minute": 6,
"penalty": true
}
],
"goals2": [
{
"name": "Diego Maradona",
"minute": 34
}
],
"ground": "Estadio Cuauhtémoc, Puebla"
},
{
"round": "Group stage",
"group": "Group A",
"date": "1986-06-05",
"time": "16:00",
"team1": "South Korea",
"team2": "Bulgaria",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Kim Jong-Boo",
"minute": 70
}
],
"goals2": [
{
"name": "Plamen Getov",
"minute": 11
}
],
"ground": "Estadio Olímpico Universitario, Mexico City"
},
{
"round": "Group stage",
"group": "Group A",
"date": "1986-06-10",
"time": "12:00",
"team1": "South Korea",
"team2": "Italy",
"score": {
"ft": [
2,
3
]
},
"goals1": [
{
"name": "Choi Soon-Ho",
"minute": 62
},
{
"name": "Huh Jung-Moo",
"minute": 89
}
],
"goals2": [
{
"name": "Alessandro Altobelli",
"minute": 17
},
{
"name": "Alessandro Altobelli",
"minute": 73
},
{
"name": "Cho Kwang-Rae",
"minute": 82,
"owngoal": true
}
],
"ground": "Estadio Cuauhtémoc, Puebla"
},
{
"round": "Group stage",
"group": "Group A",
"date": "1986-06-10",
"time": "12:00",
"team1": "Argentina",
"team2": "Bulgaria",
"score": {
"ft": [
2,
0
]
},
"goals1": [
{
"name": "Jorge Valdano",
"minute": 4
},
{
"name": "Jorge Burruchaga",
"minute": 77
}
],
"ground": "Estadio Olímpico Universitario, Mexico City"
},
{
"round": "Group stage",
"group": "Group B",
"date": "1986-06-03",
"time": "12:00",
"team1": "Belgium",
"team2": "Mexico",
"score": {
"ft": [
1,
2
]
},
"goals1": [
{
"name": "Erwin Vandenbergh",
"minute": 45
}
],
"goals2": [
{
"name": "Fernando Quirarte",
"minute": 23
},
{
"name": "Hugo Sánchez",
"minute": 39
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Group stage",
"group": "Group B",
"date": "1986-06-04",
"time": "12:00",
"team1": "Paraguay",
"team2": "Iraq",
"score": {
"ft": [
1,
0
]
},
"goals1": [
{
"name": "Julio César Romero",
"minute": 35
}
],
"ground": "Estadio Toluca 7086, Toluca"
},
{
"round": "Group stage",
"group": "Group B",
"date": "1986-06-07",
"time": "12:00",
"team1": "Mexico",
"team2": "Paraguay",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Luis Flores",
"minute": 3
}
],
"goals2": [
{
"name": "Julio César Romero",
"minute": 85
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Group stage",
"group": "Group B",
"date": "1986-06-08",
"time": "12:00",
"team1": "Iraq",
"team2": "Belgium",
"score": {
"ft": [
1,
2
]
},
"goals1": [
{
"name": "Ahmed Radhi",
"minute": 59
}
],
"goals2": [
{
"name": "Enzo Scifo",
"minute": 16
},
{
"name": "Nico Claesen",
"minute": 21,
"penalty": true
}
],
"ground": "Estadio Toluca 7086, Toluca"
},
{
"round": "Group stage",
"group": "Group B",
"date": "1986-06-11",
"time": "12:00",
"team1": "Paraguay",
"team2": "Belgium",
"score": {
"ft": [
2,
2
]
},
"goals1": [
{
"name": "Roberto Cabañas",
"minute": 50
},
{
"name": "Roberto Cabañas",
"minute": 76
}
],
"goals2": [
{
"name": "Franky Vercauteren",
"minute": 30
},
{
"name": "Daniel Veyt",
"minute": 59
}
],
"ground": "Estadio Toluca 7086, Toluca"
},
{
"round": "Group stage",
"group": "Group B",
"date": "1986-06-11",
"time": "12:00",
"team1": "Iraq",
"team2": "Mexico",
"score": {
"ft": [
0,
1
]
},
"goals2": [
{
"name": "Fernando Quirarte",
"minute": 54
}
],
"ground": "Estadio Azteca, Mexico City"
},
{
"round": "Group stage",
"group": "Group C",
"date": "1986-06-01",
"time": "16:00",
"team1": "Canada",
"team2": "France",
"score": {
"ft": [
0,
1
]
},
"goals2": [
{
"name": "Jean-Pierre Papin",
"minute": 79
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group C",
"date": "1986-06-02",
"time": "12:00",
"team1": "Soviet Union",
"team2": "Hungary",
"score": {
"ft": [
6,
0
]
},
"goals1": [
{
"name": "Pavlo Yakovenko",
"minute": 2
},
{
"name": "Sergei Aleinikov",
"minute": 4
},
{
"name": "Igor Belanov",
"minute": 24,
"penalty": true
},
{
"name": "Ivan Yaremchuk",
"minute": 66
},
{
"name": "László Dajka",
"minute": 73,
"owngoal": true
},
{
"name": "Sergey Rodionov",
"minute": 80
}
],
"ground": "Estadio Sergio León Chavez, Irapuato"
},
{
"round": "Group stage",
"group": "Group C",
"date": "1986-06-05",
"time": "12:00",
"team1": "France",
"team2": "Soviet Union",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Luis Fernández",
"minute": 62
}
],
"goals2": [
{
"name": "Vasyl Rats",
"minute": 53
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group C",
"date": "1986-06-06",
"time": "12:00",
"team1": "Hungary",
"team2": "Canada",
"score": {
"ft": [
2,
0
]
},
"goals1": [
{
"name": "Márton Esterházy",
"minute": 2
},
{
"name": "Lajos Détári",
"minute": 75
}
],
"ground": "Estadio Sergio León Chavez, Irapuato"
},
{
"round": "Group stage",
"group": "Group C",
"date": "1986-06-09",
"time": "12:00",
"team1": "Hungary",
"team2": "France",
"score": {
"ft": [
0,
3
]
},
"goals2": [
{
"name": "Yannick Stopyra",
"minute": 29
},
{
"name": "Jean Tigana",
"minute": 62
},
{
"name": "Dominique Rocheteau",
"minute": 84
}
],
"ground": "Estadio Nou Camp, León"
},
{
"round": "Group stage",
"group": "Group C",
"date": "1986-06-09",
"time": "12:00",
"team1": "Soviet Union",
"team2": "Canada",
"score": {
"ft": [
2,
0
]
},
"goals1": [
{
"name": "Oleg Blokhin",
"minute": 58
},
{
"name": "Oleksandr Zavarov",
"minute": 74
}
],
"ground": "Estadio Sergio León Chavez, Irapuato"
},
{
"round": "Group stage",
"group": "Group D",
"date": "1986-06-01",
"time": "12:00",
"team1": "Spain",
"team2": "Brazil",
"score": {
"ft": [
0,
1
]
},
"goals2": [
{
"name": "Sócrates",
"minute": 62
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Group stage",
"group": "Group D",
"date": "1986-06-03",
"time": "12:00",
"team1": "Algeria",
"team2": "Northern Ireland",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Djamel Zidane",
"minute": 59
}
],
"goals2": [
{
"name": "Norman Whiteside",
"minute": 6
}
],
"ground": "Estadio Tres de Marzo, Zapopan"
},
{
"round": "Group stage",
"group": "Group D",
"date": "1986-06-06",
"time": "12:00",
"team1": "Brazil",
"team2": "Algeria",
"score": {
"ft": [
1,
0
]
},
"goals1": [
{
"name": "Careca",
"minute": 66
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Group stage",
"group": "Group D",
"date": "1986-06-07",
"time": "12:00",
"team1": "Northern Ireland",
"team2": "Spain",
"score": {
"ft": [
1,
2
]
},
"goals1": [
{
"name": "Colin Clarke",
"minute": 46
}
],
"goals2": [
{
"name": "Emilio Butragueño",
"minute": 1
},
{
"name": "Julio Salinas",
"minute": 18
}
],
"ground": "Estadio Tres de Marzo, Zapopan"
},
{
"round": "Group stage",
"group": "Group D",
"date": "1986-06-12",
"time": "12:00",
"team1": "Northern Ireland",
"team2": "Brazil",
"score": {
"ft": [
0,
3
]
},
"goals2": [
{
"name": "Careca",
"minute": 15
},
{
"name": "Careca",
"minute": 87
},
{
"name": "Josimar",
"minute": 42
}
],
"ground": "Estadio Jalisco, Guadalajara"
},
{
"round": "Group stage",
"group": "Group D",
"date": "1986-06-12",
"time": "12:00",
"team1": "Algeria",
"team2": "Spain",
"score": {
"ft": [
0,
3
]
},
"goals2": [
{
"name": "Ramón Calderé",
"minute": 15
},
{
"name": "Ramón Calderé",
"minute": 68
},
{
"name": "Eloy",
"minute": 70
}
],
"ground": "Estadio Tecnológico, Monterrey"
},
{
"round": "Group stage",
"group": "Group E",
"date": "1986-06-04",
"time": "12:00",
"team1": "Uruguay",
"team2": "Germany",
"score": {
"ft": [
1,
1
]
},
"goals1": [
{
"name": "Antonio Alzamendi",
"minute": 4
}
],
"goals2": [
{
"name": "Klaus Allofs",
"minute": 84
}
],
"ground": "Estadio La Corregidora, Querétaro"
},
{
"round": "Group stage",
"group": "Group E",
"date": "1986-06-04",
"time": "16:00",
"team1": "Scotland",
"team2": "Denmark",
"score": {
"ft": [
0,
1
]
},
"goals2": [
{
"name": "Preben Elkjær",
"minute": 57
}
],
"ground": "Estadio Neza 86, Nezahualcóyotl"
},
{
"round": "Group stage",
"group": "Group E",
"date": "1986-06-08",
"time": "12:00",
"team1": "Germany",
"team2": "Scotland",
"score": {
"ft": [
2,
1
]
},
"goals1": [
{
"name": "Rudi Völler",
"minute": 23
},
{
"name": "Klaus Allofs",
"minute": 49
}
],
"goals2": [
{
"name": "Gordon Strachan",
"minute": 18
}
],
"ground": "Estadio La Corregidora, Querétaro"
},
{
"round": "Group stage",
"group": "Group E",
"date": "1986-06-08",
"time": "16:00",
"team1": "Denmark",
"team2": "Uruguay",
"score": {
"ft": [
6,
1
]
},
"goals1": [
{
"name": "Preben Elkjær",
"minute": 11
},
{
"name": "Preben Elkjær",
"minute": 67
},
{
"name": "Preben Elkjær",
"minute": 80
},
{
"name": "Søren Lerby",
"minute": 41
},
{
"name": "Michael Laudrup",
"minute": 52
},
{
"name": "Jesper Olsen",
"minute": 88
}
],
"goals2": [
{
"name": "Enzo Francescoli",
"minute": 45,
"penalty": true
}
],
"ground": "Estadio Neza 86, Nezahualcóyotl"
},
{
"round": "Group stage",
"group": "Group E",
"date": "1986-06-13",
"time": "12:00",
"team1": "Denmark",
"team2": "Germany",
"score": {
"ft": [
2,
0
]
},
"goals1": [
{
"name": "Jesper Olsen",
"minute": 43,
"penalty": true
},
{
"name": "John Eriksen",
"minute": 62
}
],
"ground": "Estadio La Corregidora, Querétaro"
},
{
"round": "Group stage",
"group": "Group E",
"date": "1986-06-13",
"time": "12:00",
"team1": "Scotland",
"team2": "Uruguay",
"score": {
"ft": [
0,
0
]
},
"ground": "Estadio Neza 86, Nezahualcóyotl"
},
{
"round": "Group stage",
"group": "Group F",
"date": "1986-06-02",
"time": "16:00",
"team1": "Morocco",
"team2": "Poland",
"score": {
"ft": [
0,
0
]
},
"ground": "Estadio Universitario, San Nicolás de los Garza"
},
{
"round": "Group stage",
"group": "Group F",
"date": "1986-06-03",
"time": "16:00",
"team1": "Portugal",
"team2": "England",
"score": {
"ft": [
1,
0
]
},
"goals1": [
{
"name": "Carlos Manuel",
"minute": 75
}
],
"ground": "Estadio Tecnológico, Monterrey"
},
{
"round": "Group stage",
"group": "Group F",
"date": "1986-06-06",
"time": "16:00",
"team1": "England",
"team2": "Morocco",
"score": {
"ft": [
0,
0
]
},
"ground": "Estadio Tecnológico, Monterrey"
},
{
"round": "Group stage",
"group": "Group F",
"date": "1986-06-07",
"time": "16:00",
"team1": "Poland",
"team2": "Portugal",
"score": {
"ft": [
1,
0
]
},
"goals1": [
{
"name": "Włodzimierz Smolarek",
"minute": 68
}
],
"ground": "Estadio Universitario, San Nicolás de los Garza"
},
{
"round": "Group stage",
"group": "Group F",
"date": "1986-06-11",
"time": "16:00",
"team1": "England",
"team2": "Poland",
"score": {
"ft": [
3,
0
]
},
"goals1": [
{
"name": "Gary Lineker",
"minute": 8
},
{
"name": "Gary Lineker",
"minute": 14
},
{
"name": "Gary Lineker",
"minute": 36
}
],
"ground": "Estadio Universitario, San Nicolás de los Garza"
},
{
"round": "Group stage",
"group": "Group F",
"date": "1986-06-11",
"time": "16:00",
"team1": "Portugal",
"team2": "Morocco",
"score": {
"ft": [
1,
3
]
},
"goals1": [
{
"name": "Diamantino Miranda",
"minute": 80
}
],
"goals2": [
{
"name": "Abderrazak Khairi",
"minute": 19
},
{
"name": "Abderrazak Khairi",
"minute": 27
},
{
"name": "Abdelkrim Merry",
"minute": 62
}
],
"ground": "Estadio Tres de Marzo, Zapopan"
}
]
}