Recuperer un code source côté client .. :(

Recuperer un code source côté client .. :( - PHP - Programmation

Marsh Posté le 17-02-2010 à 11:55:28    

Bonjour,
 
je tente actuellement de sauvegarder le contenu d'une page web dans un fichier. Le problème c'est que cette page est constituée de frames!
Par exemple, si je veux récupérer le nombre de caractères du code source de la page en question, mon programme ne me récupère que le nombre de caractères de la page d'accueil (ex: "http://www.bidule.com" au lieu de "http://www.bidule.com/machin/truc" )...
 
Il n'y a pourtant aucun problème pour voir le code source côté client (avec un clic-droit et "voir le code source" sous firefox je vois ça sans problèmes)!
Mais évidemment je ne veux pas le faire à la main, je voudrais que ça se fasse automatiquement..
 
Pour l'instant je passais par curl (php).. J'ai déjà essayé file_get_contents() aussi sans succès (cela ne retourne rien étant donné que le code source de ma page est "caché" côté serveur)..
 
Je souhaiterai donc:
- soit pouvoir récupérer le code source côté client (donc ce que me retourne "view-source:http://blablabla.." )
- soit pouvoir directement récupérer le code source d'une frame (mais là je ne vois vraiment pas :( )
 
Merci à tous de bien vouloir m'éclairer :s


Message édité par Elmoricq le 20-02-2010 à 03:02:19
Reply

Marsh Posté le 17-02-2010 à 11:55:28   

Reply

Marsh Posté le 17-02-2010 à 12:22:44    

ton script va recuperer le contenu de "http://www.bidule.com",
puis il va reconnaitre dedans une balise iframe,
il prendra le src de l'iframe, et recuperera le contenu de l'iframe

 

non ?


Message édité par tomsoft le 17-02-2010 à 12:22:56
Reply

Marsh Posté le 17-02-2010 à 12:51:49    

Ben non, parce qu'en fait je suis assez sceptique quant à l'existence d'une frame dans le code source... :/
En fait je ne vois pas de balises frame dans le code source de "http://www.bidule.com/machin/truc" (je ne cite volontairement pas l'adresse réelle), mais je suppose que la page "../machin/truc" est basée sur des frames car les fonctions file_get_contents() et curl ne me retournent rien (avec n'importe quelle autre url j'obtiens un code source, avec l'url souhaitée j'obtiens un joli "0" ) :'(

Message cité 1 fois
Message édité par ganguill le 17-02-2010 à 12:52:19
Reply

Marsh Posté le 17-02-2010 à 12:59:10    

envois l'url, ya pas le choix si tu veut de l'aide

Reply

Marsh Posté le 17-02-2010 à 13:08:58    

Programme encore en construction, je ne peux dévoiler mes sources pour le moment :/ Ce que je sais c'est qu'il n'y a aucune balise frame dans ce que je vois à partir de firefox.. Je souhaiterai juste savoir s'il existe une fonction (de php par exemple) permettant la récupération d'un code source côté client..
 
Par exemple si je crée une page web contenant juste le mot "coucou" et que je tente de récupérer le code source avec file_get_contents (sous wamp par exemple), le résultat est 0.. donc impossible de récupérer directement un code d'une page exécutée localement..

Reply

Marsh Posté le 17-02-2010 à 13:11:35    

et tu veut le code html rassures moi ? pas le php ?

Reply

Marsh Posté le 17-02-2010 à 13:25:56    

le html ^^ Je sais très bien que le php est caché :p

Reply

Marsh Posté le 17-02-2010 à 13:30:09    

si via un navigateur, tu vois le source, via une fonction de type file() tu vois rien,  
 
je suis sur de rien ,je ne sais pas comment file() marche, mais peut-etre que le site que tu interoges filtre l'user agent, et te retourne 0 si ce n'est pas un navigateur qui lui demandes,  
donc vois si tu peut te faire passer par un firefox ou ie pour interoger le site ;)

Reply

Marsh Posté le 17-02-2010 à 13:31:17    

ganguill a écrit :

Ben non, parce qu'en fait je suis assez sceptique quant à l'existence d'une frame dans le code source... :/
En fait je ne vois pas de balises frame dans le code source de "http://www.bidule.com/machin/truc" (je ne cite volontairement pas l'adresse réelle), mais je suppose que la page "../machin/truc" est basée sur des frames car les fonctions file_get_contents() et curl ne me retournent rien (avec n'importe quelle autre url j'obtiens un code source, avec l'url souhaitée j'obtiens un joli "0" ) :'(


Salut
Quand tu fais clic-droit / Afficher la source, tu fais ton clic-droit dans une frame, donc il t'affiche la source de la frame (http://www.bidule.com/machin/truc)
En réalité si tu veux afficher la même source que ton programme il faut pas faire clic-droit / afficher la source
Il faut que tu passes par le menu "Affichage / Source de la page"
Et là tu verras bien qu'il y a des frames
Bon courage

Reply

Marsh Posté le 17-02-2010 à 13:43:46    

Tout d'abord merci à tous pour vos réponses :)
 
tomsoft : je vais voir ce que je peux trouver sur le sujet ;)
deuspi : Ben le code de la page en passant par le menu "Affichage/Source de la page" est identique à celui que j'obtenais avant..
La seule balise parlant de "frame" est un div..
(le voici: <div class="productFrame pfs freshout"> ) ... :(
Voilà pourquoi je doute qu'il y ait des frames..

Reply

Marsh Posté le 17-02-2010 à 13:43:46   

Reply

Marsh Posté le 17-02-2010 à 13:47:30    

ya aussi autre chose, c'est peut-être du code inséré dynamiquement par AJAX/Javascript, auquel cas il n'est pas nativement dans la page, mais y est inséré seulement sur action de l'utilisateur ... Et pour récupérer ça ...:/


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 17-02-2010 à 13:47:40    

Sinon essaie de faire "clic-droit / Informations sur la page" et là tu peux voir l'URL réelle de ce que tu essaies de récupérer
Ensuite essaye de donner cette URL à ton programme pour voir ce que ça donne

Reply

Marsh Posté le 17-02-2010 à 13:58:14    

Sinon, faire une sauvegarde complète de la page (sous IE, menu "Fichier/Enregistrer sous.." ; sous Chrome, menu icone d'une page et "Save page as..." ou ctrl S) et voir le contenu sauvegardé. Normalement, la sauvegarde inclut les frames.


Message édité par olivthill le 17-02-2010 à 13:59:48
Reply

Marsh Posté le 17-02-2010 à 15:51:48    

Merci à tous :)
Je test ça ce soir et je vous tiens au courant des résultats ;)

Reply

Marsh Posté le 17-02-2010 à 21:47:23    

Bonsoir :)
Alors j'ai testé plusieurs choses, mais aucun résultat :/
 
- Le "clic-droit / Informations sur la page" ne me donne rien de bon (j'obtiens (URL): "http://www.bidule.com/machin/truc", et (URL de provenance): ""http://www.bidule.com/machin" .. Ca ne m'aide pas (que je passe l'une ou l'autre url dans mon programme j'obtiens toujours un beau 0 :/
 
- Pour l'enregistrement de la page j'y avais pensé.. J'ai donc créé un petit script sous curl qui m'enregistre la page dans un fichier.. Seulement même problème : le fichier ainsi créé est vide.. Le code source n'est donc pas disponible.. Si je tente de passer l'adresse "view-source:http://bidule.com/machin/truc" dans mon programme, je n'obtiens qu'un fichier vide également..
 
Le script fonctionne cependant! Si je tente avec "http://www.google.fr" ou même "http://www.bidule.com" ça marche..  
 
La seule solution resterait donc de trouver comment sauvegarder une page côté client (donc ce que je peux réellement voir manuellement) :(
 
 
 
J'ai fais des tas et des tas de recherches, mais rien du tout..  :(  Encore merci à tout ceux qui me passent un coup de main :)

Reply

Marsh Posté le 17-02-2010 à 21:50:14    

t'es sous *nix ? wget de ta page ca fait quoi ?

Reply

Marsh Posté le 17-02-2010 à 21:58:10    

windows :s
wget c'est pas possible xD (je vais tenter d'installer le petit package necessaire pour faire fonctionner wget sous windows, on verra bien ce que ça donnera).. Parce que là je dois dire que je sèche complètement :'(

Reply

Marsh Posté le 17-02-2010 à 22:31:40    

Wget installé mais problème identique..
je tente un "wget http://www.blablabla.com/machin/truc" et ça me retourne un fichier .html contenant le code source de "http://www.blablabla.com"
 
:'(


Message édité par ganguill le 17-02-2010 à 22:33:09
Reply

Marsh Posté le 17-02-2010 à 22:32:39    

Oh mon dieu, bidule.com m'a l'air d'être un site douteux xD Je pense que je ne vais plus utiliser ceci ici :p (edit ^^)

Reply

Marsh Posté le 18-02-2010 à 10:34:20    

Up :)
J'ai un script javascript qui me retourne le code de la page (de la bonne page cette fois-ci :) )dans une frame!
Je peut sûrement parvenir à récupérer ce code dans un fichier non?
 
Je vous poste le code tout à l'heure (et bien sûr la solution si jamais je la trouve, ce qui pourrait être utile pour d'autres plus tard)
:)

Reply

Marsh Posté le 19-02-2010 à 14:48:42    

NewsletTux a écrit :

ya aussi autre chose, c'est peut-être du code inséré dynamiquement par AJAX/Javascript, auquel cas il n'est pas nativement dans la page, mais y est inséré seulement sur action de l'utilisateur ... Et pour récupérer ça ...:/


 
+1
Si bidule.com est un site généré par GWT, tu ne pourras avoir le source complet et pourtant pas de frames (tu peux essayer avec mon site perso).
Avec Firebug, on a le source complet mais je ne sais comment firebug fonctionne...


---------------
Fred => http://www.meance.free.fr
Reply

Marsh Posté le 19-02-2010 à 15:09:20    

Bon sinon avec Firefox et l'extension web developper, y'a l'option "voir le code source généré" qui donne la source actuellement affichée à l'écran, même ce qui vient d'Ajax


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 20-02-2010 à 00:59:52    

firebug peut aussi monitorer les appels ajax, pour identifier les urls appelées si tu veut refaire des appels avec Curl
(sinon effectivement l'ext. web developper fait une excellente capture du code généré)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed