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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#1

Message 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
Modifié en dernier par cutprod le mar. 15 juil. 2014 23:53, modifié 1 fois.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#2

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#3

Message par cutprod »

Merci pour ta réponse, mais comment faire ?
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#4

Message 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/
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#5

Message par cutprod »

Merci pour ton aide.
Je regarde ça...
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

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

#6

Message 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 ...
Modifié en dernier par PandiPanda le mar. 15 juil. 2014 09:33, modifié 1 fois.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#7

Message 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.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#8

Message 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 ...
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#9

Message 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.
Modifié en dernier par orax le mar. 15 juil. 2014 15:26, modifié 1 fois.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#10

Message 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
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

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

#11

Message 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.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

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

#12

Message 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.
Cut, srcipteur du dimanche...désolé !-)
Répondre