Page 1 sur 1

[..] Web et autoit

Posté : jeu. 25 sept. 2014 13:51
par silmaril92
Bonjour à tous,

j'ai écris une application qui fait la chose suivante :

Je vais lire une page web, je cherche une information, et je l'affiche dans une fenêtre.
En soit rien de bien compliqué, et cela fonctionne.
Pour ce faire, j'utilise les lignes suivante :

Code : Tout sélectionner

      $s_URL="https://monsite.com/defaut.php"
      $s_mapage=BinaryToString(InetRead($s_URL,1))
 
Maintenant j'ai besoin de lancer cette requête toutes les secondes.
Cela ne fonctionne plus vraiment...
quelque soit la page réelle, j'ai une sorte de cache persistant quelque part, malgré l'option 1 sur la fonction inetread.
La variable de type chaine nommée mapage reste identique. même si la page web change de contenu.
(PS: j'ai essayé aussi le vidage de cache IE : RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess.. sans plus de succès).

Résultat pour que cela fonctionne, j'ai compilé la requête dans un exécutable qui place la page dans un fichier.
Et je lance cet exécutable toutes les secondes. Mais cela n'est pas viable, cela consomme beaucoup de ressources et ralenti la machine avec les écritures disques.

Ma question, est donc comment solutionner cette persistance parasitaire ou récupérer la variable sans passer par un fichier intermédiaire.

Merci d'avance pour toute aide.

Silmaril92

Re: [..] Web et autoit

Posté : jeu. 25 sept. 2014 14:41
par Yogui
Bonjour,

Ce n'est certainement pas ça mais avec le peu de code que vous indiquez c'est pas simple

Code : Tout sélectionner

$s_mapage = ""
$s_URL="https://monsite.com/defaut.php"
$s_mapage=BinaryToString(InetRead($s_URL,1))
 
:mrgreen:

Re: [..] Web et autoit

Posté : jeu. 25 sept. 2014 17:33
par silmaril92
Non ce n'ai pas çà :)
mais merci ..
le code en lui même n'a pas d'importance ... c'est plus pour montrer avec quelle fonction je vais lire ma page web.
je vais mettre plutôt une approche algorithmique :

je nomme pageweb la fonction qui va lire une page web (l'inetread)

Si je fais :

While 1
pageweb (url)
msgbox de ma page web
sleep(1000)
Wend

Le retour de ma page web est toujours la même... alors que si je l'ouvre avec mon navigateur elle change.

Si maintenant je fais :

programme 1 :
pageweb (url)
ecrire page web dans fichier1


programme 2
While 1
run programme 1
lire fichier1
msgbox de mon fichier1
sleep(1000)
Wend

la çà fonctionne, j'ai bien un retour d'information de ma page même si elle change

cela me fait dire que j'ai une sorte de fermeture de page en fin de programme .. que je n'ai pas dans ma boucle.
Mais je veux pas rester dans ce mode car l écriture fichier et lecture fichier c'est trop gourmand pour une activité à la seconde.

J'utilise inetread et non un httprequest parce que la page web est une page contenant du javascript .. et dans le premier cas j'ai le contenu de la page un peu comme une photo .. et en requete http j'ai la structure de la page mais sans le resultat de l'execution du javascript...
un inetread me retourne une variable d'environ 3k (page que je cherche à obtenir), le httprequest 53k (page qui ne contient pas les informations que j'ai besoin) sur la même url.

Re: [..] Web et autoit

Posté : jeu. 25 sept. 2014 21:46
par mikell
Pourtant dans le principe ça marche...

Code : Tout sélectionner

$s_URL="http://24timezones.com/fr_temps/paris_temps_local.php"
While 1
  $s_mapage = BinaryToString(InetRead($s_URL, 1))
  $time = StringRegExpReplace($s_mapage, '(?s).*id="currentTime">([^,]+).*', "$1")
  ToolTip($time, 0, 0)
Wend
On pourrait avoir l'url pour tester ?

Re: [..] Web et autoit

Posté : ven. 26 sept. 2014 09:42
par silmaril92
Oui dans le principe çà marche (d'ailleur ton exemple fonctionne sans problème) ..
Même si j'ai trouvé d'autre personne avec des problèmes similaires sur divers forum .. sans plus de solution .. du cache qui traine sans savoir pourquoi ...
C'est comme si le serveur ne respectait pas l'argument no-cache.

Sinon je peux pas donner le lien car il s'agit d'un portail captif et il n'est pas accessible depuis l'extérieur.

Soit je trouve comment "clore" le lien avec le serveur .. soit je vais essayer en utilisant la seconde solution qui fonctionne mais en utilisant de l exit code au lieu de fichier pour récupérer l'information.

Re: [..] Web et autoit

Posté : jeu. 02 juin 2016 16:58
par Numeric
Salut,
je sais pas quel genre d'infos voulez vous extraire, mais vous pouvez tout simplement laisser la machine tourner et vous écrire le log tout bonnement :::Le log peut être précisé :

Code : Tout sélectionner

#include <File.au3>

$s_URL="http://24timezones.com/fr_temps/paris_temps_local.php"
While 1
  $s_mapage = BinaryToString(InetRead($s_URL, 1))
  $time = StringRegExpReplace($s_mapage, '(?s).*id="currentTime">([^,]+).*', "$1")
  ToolTip($time, 0, 0)
  _FileWriteLog(@ScriptDir&'\Log.txt',$s_mapage)
Wend

Re: [..] Web et autoit

Posté : jeu. 02 juin 2016 17:35
par blacksoul305
C'est sympa de vouloir aider, vraiment.. mais le sujet en question est de septembre 2014. Je crois qu'il a soit trouvé soit abandonné depuis deux ans... Haha !

Re: [..] Web et autoit

Posté : ven. 03 juin 2016 01:47
par Numeric
oups! j'avais pas fait attention à la date de publication du sujet............