PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Contenu page web incomplet avec HTTPRequete
Contenu page web incomplet avec HTTPRequete
Débuté par zephyraerosoft, 05 sep. 2019 07:12 - 6 réponses
Membre enregistré
5 messages
Posté le 05 septembre 2019 - 07:12
Bonjour a tous,

j'essaie de recuperer le code d'une page web en lançant un HttpRequete mais le code que j'obtiens ne déroule pas les balises HTML.
Alors que le module développement d'un navigateur internet me donne tout le code de la page en question, le code récupéré par la méthode HttpRequete ne développe pas les balises <div>.
Comment puis-je recuperer l'ensemble du code entièrement développé?

Merci d'avance pour vos réponses éclairées ...
Posté le 07 septembre 2019 - 10:20
Bonjour Philippe,

Pareil de mon coté je seche sur ce point et serai intéréssé de trouver une solution pour lire l'intégralité du contenu du div.

Je pense qu'il se charge en javascript une fois le code principal html finalisé

Cdr

Yann
Membre enregistré
5 messages
Posté le 08 septembre 2019 - 00:12
Bonjour Yann,
merci pour ta réponse je suis heureux de ne pas être le seul a chercher.
Peut-Être que l'on peut charger la page dans un contrôle HTML et récupérer le code ensuite?
J'ai vu que les consoles de développement des navigateurs savaient le faire mais je n'arrive pas a récupérer cela en texte ou variable.
Est-ce que quelqu'un aurait la solution?

Merci d'avance
Membre enregistré
512 messages
Posté le 09 septembre 2019 - 11:42
Bonjour Philippe et Yann,

Avez-vous tenté de passer par Internet Explorer (pile HTTP de Windows) ?
En principe, ceci permettrait de charger complètement la page, exécuter les codes javascript, éventuellement appliquer les redirections HTTP ou encore réaliser les authentifications NTLM, etc.

Il y a un paramètre qui permet de basculer en "mode Internet Explorer".

HTTPParamètre(httpParamètreMode, 1)


https://doc.pcsoft.fr/fr-FR/?1000018985&name=HTTPParametre

:-)

--
Pour me contacter par courrier électronique, cliquez sur le lien ci-dessous (protection antispam): http://cerbermail.com/…
Message modifié, 09 septembre 2019 - 11:42
Membre enregistré
324 messages
Posté le 09 septembre 2019 - 15:59
Bonjour

Perso j'ai tjs eu ce problème donc j'ai une temporisation avec une boucle qui ne passe pas à la suite du traitement tant que la balise "</html>" n'est pas renvoyé.

Un flux de données http c'est comme tout en informatique, il y a tjs un caractère de fin ;)

MonURL est une chaîne = "https://www.google.com/search?q=google&tbm=isch"
chHTML est une chaîne =""
HTTPRequête(MonURL)
TANTQUE Droite(chHTML,7) <> "</html>"
chHTML= HTTPDonneRésultat(httpRésultat)
FIN
fSauveTexte("source.html",chHTML)


Le fsauvetexte est vraiment là pour montrer qu'on a bien atteint la balise de fin
Message modifié, 09 septembre 2019 - 15:59
Membre enregistré
5 messages
Posté le 10 septembre 2019 - 10:08
Salut Poncherello,
le problème est que le code source renvoyé donne bien la balise </html> a la fin mais a l'intérieur toutes les balises <div> ne sont pas développées. Quand on lit le code de la meme page après affichage dans un navigateur, on peut développer toutes les balises et retrouver les valeurs intéressantes à l'intérieur .
J'ai essayé de recuperer ce code depuis un contrôle HTML par affectation directe comme décrit dans l'aide mais cela me renvoie une chaine vide.
Je ne sais vraiment comment faire.
Membre enregistré
324 messages
Posté le 10 septembre 2019 - 16:27
C'est dingue, je fais du parsing de fichier html depuis une bonne dizaine d'année je ne suis jamais tombé sur ce genre de cas.

Ok alors on va tenter autres choses, perso j'évites de passer par HTTP requête, suivant comment est codé le site il peut renvoyer une source mobile ou pc d'un site, les deux sources peuvent être différentes. Donc l'idée est de passer par un champ ActiveX en mode browser web, donner l'url de la page sans plus, attendre le chargement complet de la page, puis récupérer la source de l'activeX (activeX si possible en occupant l'espace maximal de la fenêtre).

Le seul cas ou une balise DIV ne montre pas son contenu, c'est que le contenu est alimenté de manière asynchrone ! Si la source sorti de l'activeX donne bien le contenu des DIV alors c'est l'explication.

Il n'y a aucune raison pour que le httprequête / l'activeX et un navigateur n'affiche pas les mêmes données. En tout cas quand je parse le résultat d'un google image, mes jeux steam ou GOG, j'ai tjs tout ^^.

Je reviens demain ici avec le code qui va bien ^^. Est-ce une url publique que vous pourriez me donner que je test de mon côté ?

[Quote]Quand on lit le code de la meme page après affichage dans un navigateur[/Quote]

Cette remarques me fait vraiment penser à un système asynchrone
Message modifié, 10 septembre 2019 - 16:29