[R] Récupération d'une URL à partir d'une image

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[R] Récupération d'une URL à partir d'une image

#1

Message par yohan8 »

Bonjour,

J'aimerais récupérer l'URL d'un lien provenant d'une image.
Prenons l'exemple de l'image "le tutoriel" de cette page web, en haut à gauche.
Avec un Imgclick sur "Autoit-SDZ.png" nous arriverons sur la page web souhaité sauf que j'aimerais, au lieu de cliquer sur cette image, récupérer le lien de celle-ci.
Comme si on faisait clic doit - copier l'adresse du lien

Ensuite pourquoi pas placer ce lien dans un tableau [facultatif :P ]

Yohan :)
Modifié en dernier par yohan8 le dim. 24 juin 2012 13:32, modifié 3 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#2

Message par sylvanie »

Bonjour,
En prérequis à ce script, lancez avant un IE sur la page désirée (genre cele-ci ^^):
► Afficher le texte
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#3

Message par yohan8 »

Tagazok sylvanie !

Je remet en question votre script très intéressent :o
Comme prévu celui-ci fonctionne avec l'exemple :)
J'essaye de changer les quelques variable qui vont permettre d'être compatible avec le miens et voici que les erreurs s'enchaînent.

Question :
- Mon image n'est pas une png mais une jpg. Cela change-t'il quelque chose ?
-Lorsque je récupère le liens je remarque que celui-ci à quelque peu changer. J'obtiens un "&58;" au lieu d'avoir ":"
Exmple :
Au lieu d'avoir "http://google.fr" j'ai "http&58;//google.fr

Et bien sur ce n'est pas une URL correct.
-parfois
-Pour que je puisse utiliser ce script comme il ce le doit je dois comprendre certaines lignes :

Pourquoi créer ces échappatoires ?

Code : Tout sélectionner

$oIE=_IEAttach($title)

Code : Tout sélectionner

If Not IsArray($line_selected) Then Exit 2
Je suis perdu :oops:

Code : Tout sélectionner

$href=StringRegExpReplace($line_selected[0],'.*href="([^"]+)".*',"$1")

Peut-être qu'une autre solution qui éviterais de rentrer dans le code source de la page existe ?
Je n'est aucun notion dans le programmation html

Yohan :)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#4

Message par mikell »

Explication de texte :mrgreen:

Code : Tout sélectionner

#include <IE.au3>

$png="Autoit-SDZ.png" [color=#FF0000]; image de référence[/color]

$oIE=_IECreate("http://www.autoitscript.fr/forum/portal.php")
If Not IsObj($oIE) Then Exit 1     [color=#FF0000]; gestion d'erreur sur _IECreate : si erreur, exit[/color]
$allpage=_IEDocReadHTML($oIE)

$line_selected=StringRegExp($allpage,".*"&$png&".*",1)   [color=#FF0000]; ne garde que la ligne du code html qui contient $png[/color]
If Not IsArray($line_selected) Then Exit 2   [color=#FF0000] ; gestion d'erreur sur StringRegExp : si erreur, exit[/color]
MsgBox(0,"ligne à traiter",$line_selected[0])  [color=#FF0000] ; pour voir ^^[/color]

 [color=#FF0000]; ne garde de cette ligne que la partie qui est entre href=" et le " suivant[/color]
$href=StringRegExpReplace($line_selected[0],'.*href="([^"]+)".*',"$1") 
MsgBox(0,"lien",$href)
Pour nettoyer les caractères html bizzaroïdes, matwachich a fait une fonction sympa, ici :
http://www.autoitscript.fr/forum/viewto ... =21&t=9009
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#5

Message par sylvanie »

Super ! tout est dit ^^

sinon pour l'histoire du jpg au lieu du png, l'important est le nom contenu dans $png (renommez là $image si ça peut dissiper les les doutes. Il faut y mettre le nom de votre image
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#6

Message par yohan8 »

J'ai intégré ce code dans une boucle et j'ai l’impression que la variable $allpage ne change pas lorsque je change d'URL :shock:
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#7

Message par Sea »

Possible de voir ta boucle?
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#8

Message par yohan8 »

► Afficher le texte
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#9

Message par sylvanie »

A la rigueur, ajoutez un _IEAction( $oIE,"refresh") avant $texts = _IEBodyReadText($oIE), mais sans trop de conviction ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#10

Message par mikell »

Je t'ai un peu optimisé le code, maintenant faudrait tester avec la fenêtre IE visible pour pouvoir observer ce qui ne marche pas
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#11

Message par yohan8 »

Super, voila que le script fonctionne ! :D
Merci mikell, non seulement vous customisé mon script mais en plus vous le rendez fonctionnelle :D

EDIT

Par quelle malheur est-je crié trop tôt. Le script à fonctionné une fois, mais pas deux :P
Le même problème persiste, le script se base sur la première page HTML qu'il récupère, malgré la boucle :evil:
J'ai essayé de rafraîchir la page ... :|

Ne faut-il pas vider le cache ? ou quelque chose comme ça :?:
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#12

Message par mikell »

Faudrait mettre $allpagehtml="" et le _IEAction( $oIE,"refresh") de sylvanie juste avant le Wend (on sait jamais...), et puis faire tourner le script avec IE visible, pour voir ce qui se passe
J'ai comme un doute sur le _IELinkClickByText, ça serait pas une image ce bouton 'supprimer', ou y aurait pas du javascript ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Récupération d'une URL à partir d'une image

#13

Message par yohan8 »

Je confirme qu'il faut bien mettre à vide le valeur $allpagehtml et rafraîchir la page web pour qu'autoit prenne de nouveau le code HTML de la page.

Merci de votre aide. Le script fonctionne parfaitement, et ... plusieurs fois de suite :mrgreen:

Yohan :)
Répondre