Page 1 sur 1
[..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 10:07
par WaZabi
Bonjour
j'ai récemment découvert auto it car je dois réaliser un petit outil qui récupère des informations de façon automatique sur un site.
Le problème de ce site est qu'il est sécurisé par un mot de passe, j'ai donc trouvé un moyen de passer derrière avec mon script.
Mon script une fois authentifié, il charge les pages dont il a besoin puis récupère les données. Cependant cette étape est très longue (mais vraiment très longue). Il y a beaucoup de pages à charger. Je voulais donc savoir s'il est possible de ne pas charger les images, les fichiers css ainsi que toute autre ressource dans cette instance là uniquement de Internet Explorer?
En effet je dois être capable de pouvoir naviguer sur d'autres pages pendant que mon script effectue son travail.
Avez vous déjà rencontré ce genre de problème? Si oui avez vous une solution pour limiter les éléments chargés dans la page? Avez vous d'autres solutions/optimisations à me proposer?
D'avance merci
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 13:46
par mikell
En principe, une fois l'authentification faite avec IE, il devrait être possible de ne récupérer que le source des pages avec Inet ou autre
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 16:53
par WaZabi
Bonjour,
merci pour votre proposition
Je compte utiliser par la suite la UDF _IEFormGetObjByName, _IEFormElementGetValue et _IEFormElementSetValue
est-ce que un Inet est considéré comme un $o_object ?
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 18:59
par jchd
Nenni, on choppe un source brut. Alternative éventuellement plus simple et autonome : wget avec les bons paramètres. Sinon on peut aussi utiliser HTTP.au3 et ne récupérerer que ce que l'on veut mais là il faut mettre les mains dans le cambouis.
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 19:14
par mikell
Ah mais c'est différent là
Si tu évoques _IEFormElementSetValue c'est que tu as de l'interactivité derrière la tête, il ne s'agit plus de simplement et uniquement récupérer des infos
Dans ce cas le IE semble incontournable...
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 20:11
par jguinch
Salut
Si tu as de l'interactivité, tu pourras au mieux éviter le chargement des images, mais pour les CSS....
Pour la désactivation des images, tu peux essayer en désactivant l'option "Afficher les images" dans la base de registre avant le lancement du navigateur. De cette façon, la prochaine instance d'IE n'affichera pas les images (même onglet).
Code : Tout sélectionner
#include <IE.au3>
RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Display Inline Images", "REG_SZ", "no")
Local $oIE = _IECreate("www.google.fr") ; Les images ne s'affichent pas
RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Display Inline Images", "REG_SZ", "yes")
Local $oIE = _IECreate("www.yahoo.fr") ; Les images s'affichent
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 21:20
par PandiPanda
Pour le css c'est exactement le meme principe que pour les images ^^
une ptite fonction toute faites ...
► Afficher le texte
Code : Tout sélectionner
#cs _IeDesactive($flag)
desactiver image : 1
desactiver css : 2
desactiver animation : 4
desactiver le sound en background : 8
desactiver le surlignement des balise d'ancrage 16
exemple : flag qui vaut 16+8+4+2+1 = 31 < desactive tout
activer image : 32
activer css : 64
activer animation : 128
activer sound en bacjground : 256
activer surlignement balise d'ancrage : 512
exemple tout activer flag = 992
#ce
Func _IeDesactive($flag)
If BitAND($flag,1) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Display Inline Images", "REG_SZ", "no")
If BitAND($flag,2) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Use StyleSheets", "REG_SZ", "no")
If BitAND($flag,4) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Animations", "REG_SZ", "no")
If BitAND($flag,8) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Background_Sounds", "REG_SZ", "no")
If BitAND($flag,16) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Anchor Underline", "REG_SZ", "no")
If BitAND($flag,32) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Display Inline Images", "REG_SZ", "yes")
If BitAND($flag,64) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Use StyleSheets", "REG_SZ", "yes")
If BitAND($flag,128) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Animations", "REG_SZ", "yes")
If BitAND($flag,256) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Background_Sounds", "REG_SZ", "yes")
If BitAND($flag,512) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Anchor Underline", "REG_SZ", "yes")
EndFunc
un ptit exemple:
► Afficher le texte
Code : Tout sélectionner
#include <IE.au3>
Local $url = "http://fr.wikipedia.org/wiki/AutoIt"
_IeDesactive(31); desactiver 'tout'
Local $oIE = _IECreate($url) ; Les images ne s'affichent pas
_IeDesactive(992) ; activer 'tout'
$oIE = ""
#cs _IeDesactive($flag)
desactiver image : 1
desactiver css : 2
desactiver animation : 4
desactiver le sound en background : 8
desactiver le surlignement des balise d'ancrage 16
exemple : flag qui vaut 16+8+4+2+1 = 31 < desactive tout
activer image : 32
activer css : 64
activer animation : 128
activer sound en bacjground : 256
activer surlignement balise d'ancrage : 512
exemple tout activer flag = 992
#ce
Func _IeDesactive($flag)
If BitAND($flag,1) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Display Inline Images", "REG_SZ", "no")
If BitAND($flag,2) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Use StyleSheets", "REG_SZ", "no")
If BitAND($flag,4) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Animations", "REG_SZ", "no")
If BitAND($flag,8) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Background_Sounds", "REG_SZ", "no")
If BitAND($flag,16) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Anchor Underline", "REG_SZ", "no")
If BitAND($flag,32) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Display Inline Images", "REG_SZ", "yes")
If BitAND($flag,64) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Use StyleSheets", "REG_SZ", "yes")
If BitAND($flag,128) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Animations", "REG_SZ", "yes")
If BitAND($flag,256) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Play_Background_Sounds", "REG_SZ", "yes")
If BitAND($flag,512) Then RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main", "Anchor Underline", "REG_SZ", "yes")
EndFunc
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 21:58
par jguinch
Bien vu PandiPanda !
J'avais jamais prêté attention à ces cases. C'est bon à savoir.
Re: [..] IE ne pas télécharger les images et les css
Posté : mar. 11 juin 2013 22:31
par jchd
Effectivement, c'est un raccourci saisissant dont j'ignorais l'existence. Un truc comme ça mérite le gros lot du jour : le gros nounours en peluche.
On décrie parfois IE mais il faut bien reconnaître que sa couche DOM offre des facilités inégalées.
Re: [..] IE ne pas télécharger les images et les css
Posté : mer. 12 juin 2013 09:38
par WaZabi
Bonjour,
tout d'abord merci encore pour vos nombreuses réponses.
En effet je compte mettre de l'interactivité mais les aspects lecture et écriture sont distincts.
Mon script possède deux fonctions :
*Lecture d'un page web
*Écriture de données
Mais ces fonctions sont indépendantes.
Aussi je me demandais s'il est possible de récupérer les données en lecture avec Inet et IEFormElementGetValue. Quitte à utiliser un IEObject et IEFormElementSetValue pour l'écriture.
Sinon pour HTTP.au3, ou wget j'ai peur que ce soit impossible étant donné que je dois passer derrière une page d'authentification.
Qu'en pensez vous? Est-il possible d'utiliser IEFormElementGetValue avec Inet? Ou bien dois-je "mettre les mains dans le cambouis" et décrypter le HTML issu de Inet?
Re: [..] IE ne pas télécharger les images et les css
Posté : mer. 12 juin 2013 18:32
par lesolutionneur
http.au3 fonctionne très bien pour les pages d'authentification !