J’ai une petite question de débutant pour scraper une page web : comment on fait quand c’est pas du html tout con ?
J’utilisais simplement request et beautifulsoup en python, mais ça marche pas sur ce que je veux faire.
Je donne un exemple tout simple : https://data.mpg.football/.
Quand on regarde la page sur un navigateur, on voit bien les joueurs de foot et leurs notes diverses et variées.
En revanche, quand on regarde le contenu récupéré par request, on n’a rien ou presque.
Sur le principe, comment on fait pour ça ?
J’imagine que le problème sous-jacent est qu’il y a du javascript / AJAX ou autre truc du genre qui tourne quand je passe par le navigateur, ce qui n’est pas le cas via request ?
Je cherche juste la direction à prendre, après j’devrais m’débrouiller.
Les 3 endpoints parlent d’eux mêmes.
Tu peux récupérer le json comme suit :
data = requests.get("https://api.mpg.football/api/data/championship-players-pool/1?season=2021").json()
Ensuite, tu peux le parser et récupérer toutes les données dont tu as besoin
Par exemple, pour la liste des joueurs :
from requests import get
foo = get('https://api.mpg.football/api/data/championship-players-pool/1?season=2021').json()['poolPlayers']
for player in foo:
print(player['firstName'],player['lastName'])
Arf, j’ai même pas pensé à regarder le network tab… j’avais dit que c’était une question de débutant.
Effectivement, avec un accès direct au json ça va pas être bien compliqué.