Récupération de données "dynamiques" dans une page Web

Le problème exposé dans ce sujet a été résolu.

Comment récupérer cette valeur avec un script où une application (en PHP, en C ?)

En PHP, impossible. En C, je sais pas.

Sinon, un coup de PhantomJS et c'est réglé. Par contre je vois toujours pas l'intérêt de faire ça, plutôt que de prendre directement la valeur de lancement du compteur et lancer ton propre compteur en parallèle.

+0 -0

Kje: Si le site en question c'est celui-ci ? :D

Zds ? Si c'est le cas, tu peux nous dire ce que tu veux récupérer on gagnera effectivement beaucoup de temps pour la résolution car il ne doit pas y avoir des tonnes de choses calculé coté client donc ça serait plus facile.

si c'est le chrono, autant faire un chrono dans ton langage.

+0 -0

Sérieusement, pourquoi en PHP tu veux récupérer la donnée d'un chronomètre JS ? D'autant que ce chrono est spécifique à chaque personne présente sur le site.

Le mieux resterai que tu nous explique précisément le but de ton code. Pas "je souhaite récupérer tel valeur" mais son objectif réel car là ton truc ça n'a aucun sens.

Sur l'exemple en question, en effet, le chrono est spécifique à chaque personne, mais les variables que je cherche à récupérer ne le sont pas …

Si tu veux que je t'explique où je veux en venir, part du principe qu'il ne s'agit plus d'un chrono mais d'une variable aléatoire qui change toute les 2 secondes sur une page web. Evidemment, toujours codé en JS. La variable a donc la même valeur à l'instant 't' pour tout le monde, on est d'accord ?

La seule chose que doit faire mon code, c'est venir chercher cette valeur, à chaque fois que c'est nécessaire, dans l'idéal sans louper de valeur intermédiaire.

Je vois pas en quoi il est absolument nécessaire que je vous donne le lien du site en question, je vous ai donné un lien sur lequel la page a exactement le même comportement, et je vous demande si vous connaissez un moyen de venir récupérer une information … J'ai même pas demandé de lignes de codes … Je manquais de vocabulaire et mes recherches ne m'ont menées nulles part, c'est pour cette raison que je suis venu sollicité votre aide.

Si tu veux que je t'explique où je veux en venir, part du principe qu'il ne s'agit plus d'un chrono mais d'une variable aléatoire qui change toute les 2 secondes sur une page web. Evidemment, toujours codé en JS. La variable a donc la même valeur à l'instant 't' pour tout le monde, on est d'accord ?

Et bien non justement. Si c'est fait coté JS, la meme valeur à un instant 't' sera différente pour chaque utilisateur visualisant la page.

La seule chose que doit faire mon code, c'est venir chercher cette valeur, à chaque fois que c'est nécessaire, dans l'idéal sans louper de valeur intermédiaire.

C'est plus compliqué que ça car c'est évaluer coté client. Ton code doit donc récupérer la page statiquement puis évaluer son évolution comme si il était un navigateur web parmit les autres qui sont sur cette page.

Je vois pas en quoi il est absolument nécessaire que je vous donne le lien du site en question, je vous ai donné un lien sur lequel la page a exactement le même comportement, et je vous demande si vous connaissez un moyen de venir récupérer une information …

Parce que c'est essentiel ici. Parce que l'évolution du "compteur" est censé se poser coté client et que du coup ça peut changer beaucoup de chose.

Si vraiment tu ne veux pas nous donner le site, tu n'as qu'a un seul choix : avoir un interpréteur JS (seul ou intégré dans un moteur web) qui va être appelé par ton code PHP pour évaluer la valeur. C'est le mieux qu'on puisse te proposer. Mais si on insiste pour que tu nous donne la page c'est que c'est une solution probablement mauvaise. Cette solution c'est sortir un tractopelle. Alors si tu veux creuser un trou de 10m de profondeur c'est probablement adapté, mais dans 99% des cas c'est totalement pas adapté car une solution trop lourde pour écraser une mouche.

Si tu veux que je t'explique où je veux en venir, part du principe qu'il ne s'agit plus d'un chrono mais d'une variable aléatoire qui change toute les 2 secondes sur une page web. Evidemment, toujours codé en JS. La variable a donc la même valeur à l'instant 't' pour tout le monde, on est d'accord ?

Et bien non justement. Si c'est fait coté JS, la meme valeur à un instant 't' sera différente pour chaque utilisateur visualisant la page.

Ça, ou alors la valeur sort d'une API et est la même pour tout le monde, auquel cas faire du scraping est stupide puisqu'il suffit d'aller chercher l'endpoint fournissant la valeur. Ce qui doit résoudre le problème en 3 secondes maximum.

+0 -0

Je pense que c'est plutôt foutu comme l'indique victor.

Le site en question n'aurais pas d’intérêt à fournir des valeurs différentes pour chaque clients … Tu peux m'en dire plus victor ? Parce que si on parle API, là ça va être un peu plus chaud pour moi :/

EDIT: Woaps, je ne connaissais pas l'appelation "endpoint", mais j'ai fais une analyse avec Web Sniffer (extension chrome) pour observer les requêtes, et j'ai rien trouvé qui pourrait correspondre à ce changement de valeur …

+0 -0

Le site en question n'aurais pas d’intérêt à fournir des valeurs différentes pour chaque clients … Tu peux m'en dire plus victor ? Parce que si on parle API, là ça va être un peu plus chaud pour moi :/

Non au contraire. Et c'est pour ça qu'il nous faudrait le site justement. Si c'est vraiment ça ça pourrait être réglé en une ligne ou deux de code !

Sinon il faut que tu ailles fouiller le JS pour voir où il récupère la valeur et à quelle adresse.

Le site en question n'aurais pas d’intérêt à fournir des valeurs différentes pour chaque clients

Comme quoi c'est justement très différent de ton exemple de chronomètre qui est différent pour chaque utilisateur.

Je pense comme victor, ce qui confirme complètement mon propos de la page précédente : les "vous n'avez qu'à imaginer que ça marche comme …" c'est d'la merde, ça ne fonctionne jamais.

Quand on se trouve face à une incompréhension d'un fonctionnement technique, comment peut-on trouver un exemple qui s'en rapproche. Dans la majorité des cas l'exemple est mauvais, inadapté, ce cas en est l'illustration parfaite.

Pour voir s'il y a communication par API avec le serveur distant, tu ouvres la console de ton navigateur, puis affiche l'onglet "Réseau" (ou "Communications réseau", "Network", … bref, ce qui trace les requêtes aux serveurs) puis rafraîchit la page.

Tu peux généralement filtrer (en tout cas Chrome le permet) sur le type de requêtes, en l'occurrence il s'agit de requêtes XHR.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte