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

Signaler
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017
-
Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020
-
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.flashresultats.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

2 réponses

Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020
1 279
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

merci, je regarde comment je peux adapter
Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020
1 279 >
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

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;
?>
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017
>
Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020

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;
?>
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

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
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

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 ?
Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020
1 279
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.
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017
>
Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020

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 !
Messages postés
5894
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020
1 279 >
Messages postés
6
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
7 juin 2017

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.