Page 1 sur 1

Récupérer code source d'une page après génération

Posté : 07 juil. 2014, 00:28
par Ara
Bonjour à toutes et à tous ami(e)s développeurs :)

Je poste aujourd'hui ce message car je rencontre un problème qui me semble non résolvable.
J'ai développé une petite fonction basée sur la fonction PHP : cURL, afin de récupérer le code source d'une page.
<?php
 
	function recuperer_code_source($p_url)
	{
		// INITIALISATION D'UNE SESSION cURL
		$ch = curl_init();
 
		// OPTIONS DE LA SESSION cURL
		curl_setopt($ch, CURLOPT_URL, $p_url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
		curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.fr');
 
		// EXÉCUTION DE LA SESSION cURL
		$code_source = curl_exec($ch);
 
		// FERMETURE DE LA SESSION cURL
		curl_close($ch);
 
 
 
		// RETOUR DE LA FONCTION
		return $code_source;
	}
 
?>
J'ai remarqué que sur les pages contenant seulement du HTML (ou du HTML généré via du PHP) il n'y avait pas de problème lors de la récupération du code source.
En effet, le PHP étant exécuté côté serveur, le serveur renvoie le code HTML déjà généré, code récupéré facilement par ma fonction.

En revanche et c'est là que c'est fâchant, lorsqu'une page voit son code HTML généré via du JavaScript il devient impossible de récupérer ce code source via la fonction cURL, car le JavaScript est exécuté côté client, et donc... on ne récupère que le code HTML qui n'a pas été généré par le JavaScript en question...

J'aimerais donc savoir, si il est possible de récupérer le code source d'une page (via un script PHP), après que celle-ci ait été générée via le code JavaScript qu'elle contient ? Si oui, pourriez-vous m'indiquer quelle méthode je dois employer ?

Je vous remercie d'avance de vos réponses qui je l'espère me convaincront que ce n'est pas chose impossible ! :)

Re: Récupérer code source d'une page après génération

Posté : 07 juil. 2014, 07:55
par Elie
Tu as répondu toi même à la question.
Le JavaScript agit coté client donc coté serveur tu ne peux récupérer que le code source de base.

Des trucs comme Firebug ou autre ne marche que parce que tu les actionnes coté client

Re: Récupérer code source d'une page après génération

Posté : 07 juil. 2014, 08:52
par Ara
J'y ai pensé évidemment, mais n'y-a-t-il pas une solution alternative, j'ai cherché pendant des heures, et je suis tombé sur des solutions complexes à mettre en place : du genre, utiliser une API de Scripting (telles que celles utilisées par les navigateurs) pour récupérer le code HTML généré par le JavaScript...
Seulement on rentre là dans un sujet que je ne maîtrise pas...

J'ai aussi regardé du côté de Perl (dès fois que...), mais rien n'y fait, ça semble juste impossible à faire facilement car contre-intuitif.
Pourtant il suffirait que je récupère le code source de base, que je simule une action client (aucune en réalité, car le JavaScript de la page dont je souhaite récupérer le code HTML s'exécute dès l'ouverture de la page), et enfin que je récupère le code source généré...

Une idée ?

Re: Récupérer code source d'une page après génération

Posté : 07 juil. 2014, 13:06
par xTG
En gros ce que tu souhaites : un navigateur minimaliste côté serveur. ;)
Ce qui revient à ces solutions contre-intuitives et pas facile à mettre en place que tu as vu.
Rien de plus, rien de moins.

Re: Récupérer code source d'une page après génération

Posté : 07 juil. 2014, 18:22
par moogli
salut,


si tu as besoin d'infos sur une page, peux être que tu peux voir simplement avec la perso qui est à l'origine de cette page s'il peux te mettre a disposition cette information (via web service).
c'est la solution la plus simple et tu aura en prime l'autorisation du proprio de la page ;)


@+

Re: Récupérer code source d'une page après génération

Posté : 08 juil. 2014, 12:11
par sirakawa
J'avais posé une question semblable et reçu une réponse juste (avec Firefox)
php-debutant/script-invisible-t271293.html

Re: Récupérer code source d'une page après génération

Posté : 08 juil. 2014, 13:11
par xTG
J'avais posé une question semblable et reçu une réponse juste (avec Firefox)
php-debutant/script-invisible-t271293.html
J'ai beau chercher je ne vois pas le rapport. #-o

Re: Récupérer code source d'une page après génération

Posté : 08 juil. 2014, 13:47
par sirakawa
Récupération de code Javascript, ce n'est pas un rapport, oar hasard?

Re: Récupérer code source d'une page après génération

Posté : 08 juil. 2014, 15:42
par Berzemus
Qu'est-ce que tu cherches a obtenir ? Un page web de nos jours n'es plus statique, donc en récupérer le contenu comme s'il l'était ne sert a rien.

Approche le problême en prenant en compte le côté dynamique de la page: si des chôses sont insérées après affichage, elles doivent bien venir de quelque part. Extraire du contenu d'une page HTML n'est pas plus difficile que d'analyser un bout de JSON ou d'XML renvoyé par l'une ou l'autre API, documentée ou non.

Re: Récupérer code source d'une page après génération

Posté : 08 juil. 2014, 18:22
par xTG
Récupération de code Javascript, ce n'est pas un rapport, oar hasard?
Javascript est aussi un rapport mais on s'éloigne encore plus.
Au final ce qui bloque ici c'est plutôt l'interprétation de ce dit code sur le serveur.

Re: Récupérer code source d'une page après génération

Posté : 09 juil. 2014, 17:15
par sirakawa
@xtg :Parce que je croyais qu'il voulait accéder au code javascript d'une page HTML...