Page 1 sur 1

[R] InetGet télécharge un graphique d'une page web...

Posté : lun. 14 juil. 2014 12:24
par cutprod
Bonjour à tous,
je travail en ce moment sur un petit script qui parse des page web et télécharge des graphiques de production d'électricité photovoltaïque.
Tout fonctionne bien sauf que le graphique télécharger a son titre en anglais !!?
Alors que si je l'ouvre depuis mon navigateur et le télécharge avec "enregistrer l'image sous" le graphique télécharger a son titre en français.
Je pense qu'en utilisant "HttpSetUserAgent" on doit pouvoir régler ça! Mais je n' y arrive pas...
j'ai récupérais mon user agent sur http://www.mon-navigateur.com/
j'ai fais pas mal de tests... arrive pas :(

Voila la page du graphique à ouvrir dans le navigateur =
http://www.sunnyportal.com/Templates/Pu ... 77cb130f3d

Mon script (j'ai allégé au max pour que puissiez tester) le graphique est télécharger dans "@ScriptDir"
► Afficher le texte

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : lun. 14 juil. 2014 17:19
par orax
Pour moi, le problème est au niveau de l'en-tête Accept-Language lors de la requête avec InetGet. Je ne sais pas ce que InetGet envoie comme en-tête mais il faut faire en sorte que le français soit prioritaire. Par exemple : fr-fr,fr;q=0.8,en-us;q=0.5,en;q=0.3
J'ai remarqué aussi que la langue est enregistrée dans les cookies. J'avais dû les supprimer pour faire des essais avec un nouvel en-tête.

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : lun. 14 juil. 2014 21:06
par cutprod
Merci pour ta réponse, mais comment faire ?

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : lun. 14 juil. 2014 22:46
par orax
Peut-être que WinINet pourrait convenir.
Voir en particulier la fonction HttpAddRequestHeaders : http://msdn.microsoft.com/en-us/library ... 85%29.aspx
J'ai vu qu'il y a un UDF : http://www.autoitscript.com/forum/topic ... tpsgopher/

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : lun. 14 juil. 2014 22:58
par cutprod
Merci pour ton aide.
Je regarde ça...

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 06:11
par PandiPanda
Bonjour,
j'ai ce script ci qui chez moi fait ce qui est demandé (je pense du moins ^^)
► Afficher le texte
script un peu bordélique mélangeant tcp & winhttp mais fonctionnel chez moi ...

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 06:53
par cutprod
Bonjour, merci pour le coup de main.
Je viens de tester très vite (je suis sur la route du boulot...)mais ton script me télécharge un diagramme de 1 Ko :cry:
je regarde ça dès que j'ai le temps.
En tout cas merci de m'aider.

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 13:02
par cutprod
PandiPanda, je suis désolé, ce midi pendant la pause j'ai essayer dans tous les sens en remaniant en débugant... y'a rien a faire je n'y arrive pas il ne me télécharge rien....
Au niveau de "$url = $adresse_diagramme_jour" si je colle $url dans mon navigateur il m'affiche bien le diagramme souhaité, mais après plus rien: le _StringBetween suivant trouve bien la fin de l'adresse mais le téléchargement ne donne rien?
Si je reconstitue un lien avec le _StringBetween du genre : http://www.sunnyportal.com/chartfx70/te ... 006654.png : je n'obtient rien ni avec un inetget ni ton tcp ...

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 15:12
par orax
Dans WinINetConstants.au3 il faudra supprimer " Or @AutoItUnicode" au début. Et il y a peut-être d'autres choses à modifier/commenter.

J'avais un peu regardé hier donc je te mets le code que j'ai commencé.
► Afficher le texte
Et il faut avoir BDPCulture_fr_FR à la place BDPCulture_en_US dans la page récupérée.

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 15:19
par cutprod
Ha!! la ça marche!! Merci Orax, je modifie l'udf, je prend ton script mélanger au mien et ça fonctionne.
je vais faire d'autres test, mettre tout ça au propre pour l’intégrer dans le programme final....
Merci beaucoup pour votre aide, je passe le sujet en [R] ce soir si tout va bien.
► Afficher le texte

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 15:27
par orax
Il faudrait aussi ajouter

Code : Tout sélectionner

_WinINet_InternetCloseHandle($hInternetOpen)
_WinINet_Shutdown()
pour libérer les ressources ; après avant le "$r = BinaryToString($r, 4)" par exemple. Je viens de l'ajouter dans mon code.

Re: [..] InetGet télécharge un graphique d'une page web...

Posté : mar. 15 juil. 2014 23:52
par cutprod
A priori ça fonctionne bien une fois intégrer au programme.
Je vais tester et re-tester histoire d’être sur car des fois j'ai des comportements bizard...
Trouve pas le _StringBetween ou télécharge le même diagramme au lieu de changer d'installation...
Mais en tous cas un grand merci à vous deux pour votre aide.
J'aimerais pouvoir vous rendre la pareille.