[R] Bloquer pour récuperer le lien d'une page web

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

[R] Bloquer pour récuperer le lien d'une page web

#1

Message par Sydneysyd »

Bonjour à tous,

Je suis bloqué sur une fonction

J'essaye de récupérer un lien spécifique sur une page web et je voudrais qu'elle se colle dans l'edit du $button1

Code : Tout sélectionner


#include <GUIConstantsEx.au3>
#include <string.au3>

$Form1 = GUICreate("test clipboard", 537, 347, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 72, 56, 337, 129)
GUICtrlSetData(-1, "Edit1"&@CRLF&"blalba"&@CRLF&"toto"&@CRLF&"test")
$Button1 = GUICtrlCreateButton("Button1", 80, 208, 97, 41)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE        ; si on ferme la gui
            ExitLoop                  ; on sort de la boucle
    InetGet ( GUICtrlRead($input1), @TempDir & "\http://www.phoenixjp.net/news/fr/.html") ; temp correspond à la page web donnée avant dans une fonction
    ;Chargement de l'ensemble des caractères du fichier dans une variable de type String
    $tmpStr = FileRead(@TempDir & "\http://www.phoenixjp.net/news/fr/.html")
    ;Récupération du  le lien de téléchargement via la fonction _StringBetween du include <string.au3>
    $tmpStr = _StringBetween($tmpStr, http://www.phoenixjp.net/news/include/i ... _trans.gif, '"')
    $tab = StringSplit($tmpStr, "/")
    InetGet($tmpStr, @ScriptDir & "\" & $tab[$tab[0]])
        Case $Button1
;ici je pensais utiliser le meme style de fonction que pour le GuiCtrlRead
        $edit1 = GuictrlSetData ($tmpStr) ; récupération du lien trouvé et affichage dan s l'edit
            EndSwitch
WEnd

GuiDelete($Form1)
MsgBox(0,"test", ClipGet() )       ; récupère du clipboard
 
J'ai essayé de mettre les explications pour mieux comprendre dans le quote.
Lorsque que je le met en route, il m'indique une erreur sur $Button1

Je vois pas comment régler ca...

De plus, utilise-je la bonne commande ou y-a-t-il une meilleure fonction ?

Merci d'avance.

PS : désolé pour l'erreur du premier sujet. J'espère que j'ai rien loupé cette fois-ci ^^
Modifié en dernier par Sydneysyd le mar. 29 nov. 2011 15:27, modifié 2 fois.
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
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: [...] Bloquer pour récuperer le lien d'une page web

#2

Message par PandiPanda »

Bonjour,
mettre les balises de codes aurait ete préferable ^^

Dans le code que vous nous montrez quelque probleme subsiste ... notamment:
- 1er problème, vous mettez un "ExitLoop" et ensuite vous voulez extirper l'url. Cependant, jamais vous ne l'executerai cette partie de code ^^ !

- 2eme problème : dans _StringBetween($tmpStr, http://www.phoenixjp.net/news/include/i ... _trans.gif, '"'), http://www.phoenixjp.net/news/include/i ... _trans.gif, doit etre entourer soit de ' soit de "

- 3eme problème : _StringBetween() retourne un tableau de 1 dimension, et vous utiliser ensuite StringSplit() qui est une methode essentiellement utilisé pour les "String" non pour les tableaux ! [il n'y aura pas d'erreur, mais le tableau ne sera composé que d'un seul élément, à savoir "RIEN"]

Je vous met un exemple ci dessous de comment j'aurai extirper une adresse url d'un site au hasard avec _StringBetween()
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Bloquer pour récuperer le lien d'une page web

#3

Message par Sydneysyd »

Merci pour ces réponses !


- 1er problème, vous mettez un "ExitLoop" et ensuite vous voulez extirper l'url. Cependant, jamais vous ne l'executerai cette partie de code ^^ !
Euh, ce n'est pas pour sortir de la boucle lorsque l'on clique sur la croix de fermeture ?


- 2eme problème : dans _StringBetween($tmpStr, http://www.phoenixjp.net/news/include/i ... _trans.gif, '"'), http://www.phoenixjp.net/news/include/i ... _trans.gif, doit etre entourer soit de ' soit de "

J'avais pas vu - Corrigé

- 3eme problème : _StringBetween() retourne un tableau de 1 dimension, et vous utiliser ensuite StringSplit() qui est une methode essentiellement utilisé pour les "String" non pour les tableaux ! [il n'y aura pas d'erreur, mais le tableau ne sera composé que d'un seul élément, à savoir "RIEN"]
Le but est de récuperer un seul uniquement, et de le faire apparaitre dans la partie $edit1, donc je ne comprend l'interet du tableau. Mais effectivement, le code ne me renvoie rien.


Et pour la fonction GuiCtrlSetData, est-ce la bonne fonction pour placer le lien dans edit1 ?

Merci en tout cas
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Bloquer pour récuperer le lien d'une page web

#4

Message par mikell »

Sydneysyd a écrit :J'essaye de récupérer un lien spécifique sur une page web
Ya certainement beaucoup plus simple
Sur cette page "http://www.phoenixjp.net/news/fr/" quel est exactement le lien spécifique que vous voulez récupérer ? (au vu de votre script c'est pas évident)
" 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
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Bloquer pour récuperer le lien d'une page web

#5

Message par Sydneysyd »

récupérer le lien web de l'image, mais j'aimerais que l'autoIT le trouve tout seul (si j'ose dire).
Tout simplement pour mieux comprendre le fonctionnement.
Le bout de script en lui même n'a pour but que de me faire comprendre certaines fonctions qui restent obscures.
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Bloquer pour récuperer le lien d'une page web

#6

Message par mikell »

Hmm si c'est juste pour récupérer le lien d'une image, voilà une piste simple mais parlante :mrgreen:

Code : Tout sélectionner

#include <IE.au3> 

$text = ""
$oIE = _IECreate ("http://www.phoenixjp.net/news/fr/.html", 0, 0)
$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
    $text &= $oImg.src & @CRLF
Next
MsgBox(0, "adresses", $text)
Si on connait un bout de nom de l'image, on peut faire simplement

Code : Tout sélectionner

#include <IE.au3> 

$oIE = _IECreate ("http://www.phoenixjp.net/news/fr/.html", 0, 0)
$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
    If StringInStr($oImg.src, "trans") Then MsgBox(0, "adresse", $oImg.src)
Next
" 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
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Bloquer pour récuperer le lien d'une page web

#7

Message par Sydneysyd »

C'est parfait et très parlant (bon faut que je le mette bien dans la tête, mais c'est explicite).

Par contre, une fois le lien de l'image récupéré comment le mettre dans un edit1 ?

Car là, j'ai beau essayé , rien ne marche (clipput, clipget, guictrlsetdata...)

Je sais que je tourne autour du pot en + !
lol

Merci pour ton aide
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Bloquer pour récuperer le lien d'une page web

#8

Message par sylvanie »

guictrlsetdata($edit1,$variable_contenant_url)
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: [..] Bloquer pour récuperer le lien d'une page web

#9

Message par mikell »

Ben voilà
Exemple un peu moins simple mais... etc :mrgreen:
► Afficher le texte
Pour mettre dans un Edit :
GuiCtrlSetData($Edit, $adr_image)
" 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
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [..] Bloquer pour récuperer le lien d'une page web

#10

Message par Sydneysyd »

C'est beaucoup plus clair, meme si je dois prendre du temps pour assimiler le dernier code ! ^^
lol


Merci beaucoup.

Je met [R]
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Répondre