Administrateur PHPfrance |
9782 Messages
04 août 2016, 09:55
Bonjour,
les liens ( lien vers doc PDF) n'apparaissent pas dans le code source de la page dynamique. ces liens apparaissent dans le code source uniquement lorsque la page dynamique est enregistrée en page web complète (statique)
Ce n'est pas claire ce que tu appelles une page dynamique vs. statique.
PHP génère du code HTML.
file_get_contents() permet de récupérer le code HTML d'une page quelconque qu'elle ait été générée par PHP ou par n'importe quel autre langage.
C'est l'équivalent de faire un clic droit sur la page, affiche la source.
Si ce que tu veux enregistrer n'apparait pas, alors c'est probablement qu'il y a du javascript qui intervient dans la construction de la page et c'est donc le navigateur internet qui va rajouter des éléments une fois la page chargée (et interprétée par le navigateur).
Pour le vérifier, tu peux désactiver le javascript de la page que tu veux enregistrer et voir si elle réagit pareil ou pas. Pour désactiver le JS, je te conseille d'installer l'extension Web developer sur Firefox ou Chrome.
Si c'est effectivement du javascript/ajax qui est à l'oeuvre pour construire cette page, alors c'est bcp + compliqué car il faut que ton "aspirateur de page" interprête le javascript pour se comporter comme un navigateur.
L'approche dans ce cas généralement est d'essayer de faire du reverse engineering pour comprendre où le site va chercher les données à afficher et à aller récupérer directement les flux qui servent à la construction.
Ton ami dans cecas pour étudier cela est la console réseau des outils de développement de Firefox et Chrome : Ctrl+Maj+i onglet réseau, rafraichis la page et analyse chaque ligne, en particulier les appels XHR et les fichiers JS
Quand tout le reste a échoué, lisez le mode d'emploi...