Récupérer contenu d'une page dans une base de données

Fermé
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 - Modifié le 21 juil. 2021 à 20:18
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 - 25 juil. 2021 à 22:25
Bonjour à tous,

D'abord, merci d'être là pour essayer de m'aider !

J'explique mon problème : j'ai un site internet qui m'affiche des informations, que je dois copier-coller à chaque fois dans un tableau Excel, puis revenir sur le site, accéder à la page suivante, et ensuite répéter l'opération.

Cela prend énormément de temps, et je me demandais si il n'y avait pas un simple moyen de récupérer le contenu d'une page (pour ensuite l'exporter dans une base de données/un fichier texte, mais j'arrive à faire cette partie tout seul par la suite).

J'ai déjà crée une page avec une iframe pour afficher le site qui contient les informations, tout fonctionne bien, je peux afficher les informations du site externe sur la page de mon site.

J'ai aussi pu trouver quelques exemples que j'ai adapté, mais ils ne fonctionnent pas très bien...

<html>
<head>
</head>
<body>
<center>
<button onclick="myFunction()">Sauvegarder</button>
<iframe id="iframe_id"
    title="Inline Frame Example"
    width="100%"
    height="90%"
    src="https://site-externe.com/">
</iframe>
<p id="p1">VIDE</p>
</center>
<script>
function myFunction(){
  document.getElementById("p1").innerHTML = document.getElementById("iframe_id").contentWindow.document.body.innerHTML;
}
</script>
</body>
</html>


Merci d'avance pour votre aide !

PS : J'ai choisi la catégorie PHP, car j'aimerais aussi avoir un tout petit peu d'aide pour adapter cela et récupérer le contenu dans PHP, pour que je puisse ensuite le traiter comme je le souhaite.
A voir également:

6 réponses

yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022 1 269
21 juil. 2021 à 22:05
bonjour,
je ne comprends pas bien en quoi ta page html va t'aider à récupérer, via php, des données à exporter.
pourquoi as-tu choisi PHP? peux-tu décrire ton environnement?
0
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6
21 juil. 2021 à 22:46
Bonjour,

Merci beaucoup pour cette réponse,

En fait, j'ai un petit serveur web sur lequel j'héberge quelques pages (pas de vrais sites, juste des petits tests, bricolages etc). J'ai accès par contre à un autre vrai site (un truc officiel quoi), qui affiche des informations sur des pages html, exemple :
<h1>Titre page numero 123</h1>
<div>
<p>Première info:</p>
<p>Blablabla</p>
</div>


Et ce site contient des centaines de pages (je sais pas exactement, mais enfin c'est pour dire que c'est quasi impossible à la main)

Du coup, j'aimerais pouvoir cliquer sur les différentes pages du site, et ensuite avoir quelque chose qui tourne de mon coté (pas forcément sur mon ordinateur, ca peut, et c'est ce que je trouvais le plus simple, une page que j'héberge sur mon serveur, contenant une iframe et un petit script pour pouvoir récupérer le contenu de ce qui est affiché dans l'iframe).

Le problème c'est que mes différents essais n'ont pas fonctionné, et que je suis un peu perdu au niveau de la récupération du code du serveur distant.

Merci d'avance pour cette aide
0
jordane45 Messages postés 36609 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 décembre 2022 4 419
21 juil. 2021 à 22:49
Bonjour,

Pour récupérer des données de pages externes, tu peux te tourner vers la fonction php file_getcontents
ou vers du Curl.

Mais avant tout .. pour pomper du contenu qui n'est pas à toi.. tu dois en demander l'autorisation au propriétaire du site...

0
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6
Modifié le 21 juil. 2021 à 22:56
Merci beaucoup pour cette réponse ultra rapide :)

En fait, le problème avec Curl par exemple, c'est qu'on spécifie bien une url exacte pointant vers le contenu, et le problème sur le site externe est qu'il faut se connecter...

De plus, la programmation du site distant est très étrange, puisque l'url ne change pas tout au long de la visite du site, c'est a dire que l'url est la même pour chaque page du site, c'est juste qu'autre chose est affiché

Merci pour cette aide

Edit : Pas de soucis, j'ai déjà contacté le propriétaire du site, il est d'accord pour que j'utilise un moyen pour récupérer ces informations sans que ca perturbe son site, et n'a pas pu me les donner directement (car il ne maitrise pas trop les bases de données, et que ce n'est pas lui qui a crée le site, il en est juste le propriétaire). Il m'a indiqué quelques autres contraintes comme par exemple quelques pages (en me donnant le titre exact), qu'il ne souhaite pas que je télécharge, du coup ce que je pense faire est directement les supprimer ou ne pas les enregistrer avec le traitement à la fin par PHP
0
yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022 1 269
22 juil. 2021 à 12:34
Tu as écrit que tu avais, sur ton site, une page avec une iframe pour afficher le site qui contient les informations, et qu'elle affichait les informations du site externe.
Pourquoi, alors, ne pas utiliser curl pour récupérer les données de cette page?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6
22 juil. 2021 à 20:07
En fait mon iframe affiche le site externe directement, mais je n'arrive pas vraiment à récupérer le code source automatiquement de cette iframe, pour ensuite le transmettre à Php pour que je puisse le traiter comme il faut.
0
yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022 1 269
23 juil. 2021 à 11:17
Dans tes explications, tu mélanges ce que tu fais et ce que fait le programme.
Décris la séquence des actions, en précisant clairement qui fait quoi.
0
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6 > yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022
23 juil. 2021 à 23:50
Ma page fait actuellement : Affichage de l'iframe
Ce que je dois faire manuellement : Me connecter au site distant à travers l'iframe de mon site
Ce que je souhaiterais effectuer automatiquement : Ajouter un "petit" script sur ma page, pour qu'il puisse récupérer le code source de ce qui est affiché dans l'iframe
0
yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022 1 269 > crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022
24 juil. 2021 à 10:43
Ton site envoie le contenu html d'une page à ton navigateur.
Il n'est ensuite plus impliqué dans la communication entre le navigateur et le site distant.
0
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6 > yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022
24 juil. 2021 à 11:31
Y aurait-il un moyen simple (ou sinon passer par un logiciel externe), de récupérer simplement le site qui est affiché à l'écran (comme une capture d'écran) mais où je puisse copier-coller du texte alors ?
0
yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022 1 269 > crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022
24 juil. 2021 à 11:34
Les navigateurs permettent de récupérer la source de la page. Certains navigateurs font cela via ctrl-U.
0
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6
24 juil. 2021 à 21:17
Ah hum je crois que mon dernier message a été supprimé, mais en fait je crois que je suis sur une piste (qui dérive un peu de la question originale).
En copiant-collant la page dans word, j'arrive simplement à récupérer toutes les informations nécessaires. Par contre, j'aimerais maintenant adapter cette partie de document word en informations pour Php.
En fait, j'avais pensé copier coller ensuite le document word dans un simple formulaire Html pour qu'ensuite Php puisse traiter les informations de ce formulaire, en séparant par ligne/caractère et informations (je pense que j'arriverai à trouver les fonctions nécessaires que je ne connais pas par coeur dans la documentation de php, et en faisant des simples recherches sur ce bon vieux Google)
Le seul problème qui reste, c'est traiter une partie du copié-collé, qui elle contient une image et des couleurs de texte, ce que les formulaires html ne supportent pas par défaut.
Je vais faire quelques recherches, mais si jamais quelqu'un a une idée/une piste, je suis preneur !
0
yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022 1 269
25 juil. 2021 à 13:26
pourquoi ne copies-tu pas la source html dans le formulaire?
0
crepijules Messages postés 74 Date d'inscription dimanche 23 juillet 2017 Statut Membre Dernière intervention 15 juin 2022 6 > yg_be Messages postés 20773 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 décembre 2022
25 juil. 2021 à 22:25
En fait, en bricolant quelques heures, j'ai réussi à faire un petit script (très mal rédigé, pas très propre et pas optimisé, mais qui fonctionne très rapidement, et sans aucun problème, ce qui me convient parfaitement).
Il arrive a récupérer automatiquement les données que j'ai copié-collé dans word, puis ensuite dans un .txt pour que php puisse facilement le traiter.

La solution la plus simple (à mon gout) est de copier-coller l'intégralité de la page affichée (CTRL + A et CTRL + C) dans word (a la suite une page de l'autre, sans mise en forme précise), puis ensuite copier coller le word dans un .txt, puis l'uploader vers le serveur (pour l'instant manuellement, mais dans le futur très proche je ferais un petit formulaire tout simple).

Ensuite, Php traite le fichier .txt, ajoute les infos dans la BDD, et tout marche parfaitement.

Le seul petit problème restant est qu'il manque une toute petite partie des infos (lors de la conversion de word en txt) : les images + les couleurs de texte. Pour l'instant je les ajoute manuellement (la plus grande partie du travail étant faite par Php, c'est à peu près faisable de faire le reste manuellement), même si ce serait top de pouvoir le faire de manière totalement automatisée.

Une idée pour transférer des couleurs de textes dans word en infos utilisables dans le .txt ? Comme par exemple entourer les caractères en couleur par des genres de balises, exemple : (ne pouvant pas écrire en couleur, ce qui est souligné représente la couleur)

Mon texte avec une partie verte --> Mon texte avec une partie <couleur_vert>verte</couleur_vert>

Pareil pour les images, comme elles viennent d'une url, serait il possible de coller l'url de l'image dans le .txt ?

Merci d'avance pour toute cette aide :)
0