Récupérer une partie des données d'une page WEB

Fermé
thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017
- 6 juin 2017 à 18:41
dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
- 7 juin 2017 à 12:06
Bonjour à tous,

L'objectif de mon projet et de copier l'ensemble des matchs de la saison de L1 dans une base donnée.

Pour ce faire, j'ai pensé à programmer quelque chose en PHP afin de lire les données d'une page WEB puis toujours en PHP de les insérer dans ma base de donnée.
Pour avoir le calendrier des matchs, je pensais utiliser ce site qui je trouve à l'avantage d'avoir une URL facile : http://www.madeinfoot.com/ligue-1/saison/2016-2017/l1-journee-1.html
(ou depuis https://www.flashscore.fr/football/france/ligue-1/ -> mais me semble plus compliqué)

Les données à récupérer sont : date, horaire, équipes (domicile/extérieur), score (équipe à domicile/extérieur -> une fois le match joué, NULL sinon)

ainsi mon algorithme simplifier ferait ceci

choisir saison : $saison
pour journée 1 à 38 ($num_journée) faire
lire et copier les matchs de http://www.madeinfoot.com vers Base de Données

Il faudrait que je récupère les valeur sous forme de tableau j'imagine

J'ai essayé avec file_get_contents() mais je récupère toute la page, il faudrait que je puisse spécifier la partie que je veux récupérer.

Si quelqu'un pouvais m'aider à récupérer juste les données voulues, ou peut-être qu'il existe une autre solution plus facile sans utiliser PHP ?

Merci d'avance pour votre aide
A voir également:

2 réponses

dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 453
6 juin 2017 à 20:06
Bonjour,

J'avais posé une question similaire et trouvé la solution en novembre 2016 :

https://forums.commentcamarche.net/forum/affich-34109417-occurence-dans-chaine-de-caracteres
1
thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

6 juin 2017 à 20:19
merci, je regarde comment je peux adapter
0
dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 453 > thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

6 juin 2017 à 20:33
En principe, avec ce code, ça fonctionne :

<?php
$site = file_get_contents('http://www.madeinfoot.com/ligue-1/saison/2016-2017/l1-journee-1.html');

$annonces = substr($site, strpos($site, '<section class="contenu pull-left" id="une">'), -18612);

echo $annonces;
?>
0
thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017
> dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021

6 juin 2017 à 21:05
Voici comment je m'y suis pris

<?php
$site = file_get_contents('http://www.madeinfoot.com/ligue-1/saison/2016-2017/l1-journee-1.html');
$dif=strpos($site, '<div class="outbrain-tm" id="1027-16">')-strpos($site, '<div class="row media">');
$annonces = substr($site, strpos($site, '<div class="row media">'), $dif);
echo $annonces;
?>
0
thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

6 juin 2017 à 20:41
super merci bien ! j'ai réussi à cibler les données souhaitée !!! je vais maintenant chercher une manière de les exploiter pour enregistrer dans une BDD
0
thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

6 juin 2017 à 23:07
maintenant que j'ai les données qui m'intéresse est-ce que quelqu'un pourrait m'orienter sur comment les exploiter afin de pouvoir les copier dans une base de donnée.
Il faudrait je pense mettre sous forme de tableau ?
0
dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 453
Modifié le 7 juin 2017 à 09:22
Bonjour,

Tu peux stocker la variable qui contient la partie de la page capturée, par exemple $jour1 pour la première journée, $jour2 pour la deuxième journée, etc :

<?php
$site = file_get_contents('http://www.madeinfoot.com/ligue-1/saison/2016-2017/l1-journee-1.html');
$dif=strpos($site, '<div class="outbrain-tm" id="1027-16">')-strpos($site, '<div class="row media">');
$jour1 = substr($site, strpos($site, '<div class="row media">'), $dif);
echo $jour1;
?>


Mais, je ne sais pas si c'est très utile pour ce que tu sembles vouloir faire. La solution pourrait être d'ajouter des classes dans ton fichier de style, classes qui porteraient le même nom que celles qui figurent dans la partie capturée et auxquelles tu donnerais le style que tu souhaites.

Ainsi, quand tu afficheras les données capturées dans les variables $jourx elles auront le style de ta page et non celui de la page capturée.
0
thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017
> dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021

7 juin 2017 à 10:50
Mon objectif est d'insérer les données dans une base de donnée (colonnes heure, date, équipé domicile, équipé extérieur, score domicile, score extérieur)
Ici je fais écho pour voir ce que je récupère mais en soit il est inutile !
0
dugenou
Messages postés
6083
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 453 > thib25
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

7 juin 2017 à 12:06
En effet, cette technique ne convient pas, il faut trouver une autre solution.

Je pensais que tu ne voulais qu'afficher les résultats sur ton site.
0