[R] Détecter couleur lien hypertexte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[R] Détecter couleur lien hypertexte

#1

Message par jcaspar »

B :D njour à tous !

Je souhaiterais pouvoir détecter la couleur des liens d'un site Web
afin que les liens ayant la couleur rouge s'ouvrent automatiquement dans des fenêtres distinctes
et mieux encore récupérer le contenu de chaque fenêtre ( du texte ) et concaténer le contenu de chaque fenêtre pour
créer un fichier récapitulatif ..... est ce que cela vous semble possible sous Internet Explorer et sous Firefox ?
Quel serait le meilleur moyen d'y parvenir ?

En vous remerciant pour vos conseils


Jean-Marc
Modifié en dernier par jcaspar le jeu. 11 déc. 2014 10:40, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#2

Message par mikell »

ça dépend de la façon dont la couleur est attribuée au lien
Par exemple sur cette page de sujet

Code : Tout sélectionner

<p class="gensmall">Utilisateurs parcourant ce sujet : <a href="./memberlist.php?mode=viewprofile&u=3780" style=[b]"color: rgb(0, 170, 0);"[/b] class="username-coloured">mikell</a> et 0 invité(s)</p>
c'est explicite, mais si ça ne l'est pas faut faire un tableau d'équivalences ou aller chercher dans la feuille de styles
" 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
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#3

Message par A2Energie »

Bonjour Jcaspar,

Pour ma part, je te conseil vivement IE qui permet plus d’interactivité avec autoit que Firefox.
Pour récupérer le texte, tu ne devrais avoir aucun problème à le faire (innertext)
Et concernant le lien, effectivement cela dépend, mais d'une manière ou d'une autre tu arriva à le détecter.
Plus d'infos à nous donner ?
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#4

Message par jcaspar »

B :D onjour à vous !

Merci pour vos réponses .. Voici un exemple de ce à quoi je souhaiterais parvenir

en prenant l'exemple de google ... Je souhaiterais ouvrir le site OK , lister les liens hypertexte OK

les ouvrir puis récupérer le texte des liens qui ont été ouverts et je souhaiterais faire une distinction

entre les liens ayant la couleur rouge et les autres pour disposer de deux fichier distincts.....

Ouvrir le site ne pose pas de soucis, lister les hypertexte également, mais comment les ouvrir puis en récupérer le texte :roll: ?


Je vous remercie pour vos conseils

Jean-Marc

► Afficher le texte
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#5

Message par A2Energie »

Bon...
Je pense en faite que tu ne parle pas vraiment de la couleur mais plutôt de savoir si tu es déjà allé voir le lien ou non. (couleur rouge).

Concernant le texte, il faut utiliser innertexte comme si dessous :

Code : Tout sélectionner

#include <IE.au3>
 #include <MsgBoxConstants.au3>

$oie=_IECreate("https://www.google.fr/search?rls=com.microsoft%3Afr-FR%3AIE-Address&q=a2energie&oq=a2energie&gs_l=serp.3..0j0i10i30.1907.3575.0.3638.9.9.0.0.0.0.158.878.2j5.7.0.ekpsr...0...1.1.59.serp..2.7.870.J-_8YyGQw0s")
;~ $lien=_IEFormElementGetObjByName($oie,)
$oLinks=_IELinkGetCollection($oie)

Local $iNumLinks = @extended
Local $sTxt = $iNumLinks & " links found" & @CRLF & @CRLF
For $oLink In $oLinks

$sTxt &= $oLink.href & " / " & $oLink.innertext & @CRLF
;~ _IELinkClickByText($oLinks,$sTxt)
;~ _IELinkClickByIndex($oLink, 0)
Next
MsgBox($MB_SYSTEMMODAL, "Link Info", $sTxt)
 
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#6

Message par jcaspar »

M :D erci pour vos conseils avisés !

J'ai encore un petit soucis le script bloque car la première ouverture de lien se fait dans la même fenêtre ...il faudrait qu'elle se fasse dans une fenetre distincte
pour le script puisse s’exécuter normalement ....

Probablement avez vous une solution magique !

En vous remerciant pour vos conseils :mrgreen:

Code : Tout sélectionner

[spoiler=]
 #include <IE.au3>
 #include <MsgBoxConstants.au3>


$oie=_IECreate("http://www.google.fr")
$oLinks=_IELinkGetCollection($oie)

Local $iNumLinks = @extended
Local $sTxt = $iNumLinks & " links found" & @CRLF & @CRLF

For $oLink In $oLinks

     $sTxt &= $oLink.href & @CRLF
;~   $sTxt &= $oLink.href & " / " & $oLink.innertext & @CRLF
;~ _IELinkClickByText($oLinks,$sTxt)

msgbox(64,"Titre",$oLink.href)
msgbox(64,"Titre",$oLink.innerText)
;~ _IELinkClickByIndex($oLink,0)

_IELinkClickByText($oie,$oLink.innerText,0)

Next

[/spoiler]
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#7

Message par A2Energie »

Bonjour,

Je te laisse chercher la solution :wink: :
Tu verra c'est très simple.

https://www.autoitscript.com/autoit3/do ... Create.htm
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#8

Message par jcaspar »

Merci pour cette suggestion mais en fait il me semble que le problème provient plutôt de
l'instruction suivant ouvre la fenêtre principale

$oie=_IECreate("http://www.google.fr",0,0,1) effectivement il est possible de cacher l'apparence, de l'attacher à une fenêtre existante ou non
mais il me semble que le soucis serait plutôt au niveau de _IELinkClickByIndex($oLink,0)

Bon je poursuis mes investigations ....
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#9

Message par A2Energie »

Bonjour,

Tu ne peu pas cliquer et ouvrir dans une nouvelle page, c'est le code html qui gère ca.
Si tu veux ouvrir a chaque lien, tu devra créer une nouvelle page à chaque fois avec _IECreate()

Donc j'ai imaginé une autre solution
Le but est de stocker dans un tableau tous tes liens et ensuite de les ressortir,

Dsl si le code est vilain pas beau :mrgreen:

Code : Tout sélectionner

 #include <IE.au3>
 #include <MsgBoxConstants.au3>

$oie=_IECreate("https://www.google.fr/search?sourceid=chrome-psyapi2&ion=1&espv=2&ie=UTF-8&q=a2energie")
$oLinks=_IELinkGetCollection($oie)

Local $iNumLinks = @extended
Local $sTxt = $iNumLinks & " links found" & @CRLF & @CRLF

; Tu crée un tableau pour stocker tes URL.
$i = 0
Dim $Tab[$i] ; tableau des liens

; Tu stock tes URL dans le tableau
For $oLink In $oLinks
   Redim $Tab[$i + 1]
   $Tab[$i] = $oLink.href
  ; MsgBox(1,"",$Tab[$i])
   $i += 1
Next

; Puis tu ouvre tes url un par un
$oie = _IECreate($Tab[0])
J'imagine que les experts ont d'autres solutions, pour ma part stocker l'ensemble de tes liens dans un tableau me semble la meilleur solution.
Cela te permettra de faire facilement des manipulations par exemple voir si le lien est déjà stocké.
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#10

Message par jcaspar »

:D OUI c'est bien mieux .merci.!.
J'ai eu une idée ..pour que cela soit plus clean mais mon idée est elle heureuse ?. Reste à filtrer lol sinon il y aura 30000 liens qui vont s'ouvir :lol:

Code : Tout sélectionner

[spoiler=]
#include <IE.au3>
#include <MsgBoxConstants.au3>

$oie = _IECreate("https://www.google.fr/")
$oLinks = _IELinkGetCollection($oie)

Local $iNumLinks = @extended
Local $sTxt = $iNumLinks & " links found" & @CRLF & @CRLF

$i = 0
Dim $Tab[$i] ; tableau des liens

; Tu stock tes URL dans le tableau
For $oLink In $oLinks
    Redim $Tab[$i + 1]
    $Tab[$i] = $oLink.href
;~   MsgBox(1,"",$Tab[$i])
    $i += 1
$oie = _IECreate($oLink.href)
Next[/spoiler]
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#11

Message par A2Energie »

Bonjour,

Si tu penses avoir réglé ton problème,
N'oublie pas de passer ton poste en résolu [R] :wink:
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Détecter couleur lien hypertexte

#12

Message par jcaspar »

Je n'ai pas encore finalisé ma petite appli mais bon si besoin je rouvrirais un autre post

En vous remerciant pour votre aide
Répondre