[..] - Tester des liens internet ( liens brisés )

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jordane45
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 03 févr. 2010 12:13
Localisation : Orléans
Status : Hors ligne

[..] - Tester des liens internet ( liens brisés )

#1

Message par jordane45 »

Bonjour,

Après plusieurs recherches sur ce site (et ailleurs) je me permet de vous solliciter...

Je cherche à réaliser un script qui me permettrait de tester une liste de liens et détecter ceux qui seraient éventuellement "morts".

j'ai essayé de passer par du :

Code : Tout sélectionner

 Func _INetGetSource($s_URL, $bString = True)
    Local $sString = InetRead($s_URL, 1)
    Local $nError = @error, $nExtended = @extended
    If $bString Then $sString = BinaryToString($sString)
    Return SetError($nError, $nExtended, $sString)
EndFunc  
puis de chercher "not found" ou " error 404" mais le resultat ne me semble pas fiable... (une fois sur 3 il me retourne une valeur erronée.

Auriez-vous une idée/solution à me proposer ?
Quelque chose de fiable, rapide, qui gère le https comme le http...

Merci pour votre aide.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] - Tester des liens internet ( liens brisés )

#2

Message par Tlem »

Pouvez-vous donner un lien qui retourne une valeur erronée ?

Edit : Ceci semble fonctionner : http://www.autoitscript.com/forum/topic ... _p__915841
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jordane45
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 03 févr. 2010 12:13
Localisation : Orléans
Status : Hors ligne

Re: [..] - Tester des liens internet ( liens brisés )

#3

Message par jordane45 »

Bonjour Tlem..
Merci de t'interresser à mon souci.

Pour ce qui est d'un exemple de lien... je dirais... n'importe lequel qui retournerai une erreur 404 .

Ce programme a pour but de tester tous les liens contenus dans mes faforis internet..

Je viens de regarder le sujet sur lequel tu me renvoies.. malheureusement ça ne semble pas fonctionner chez moi.

Code : Tout sélectionner

; En utilisant le script sous cette forme : 
    $oHttpRequest.SetTimeouts($ResolveTimeout, $ConnectTimeout, $SendTimeout, $ReceiveTimeout)
    $oHttpRequest.Open("GET", $sTestUrl)
    $oHttpRequest.Send
 
j'obtient l'erreur suivante :
==> The requested action with this object has failed.:
$oHttpRequest.Send
$oHttpRequest.Send^ ERROR
Sous l'autre forme, j'ai le même souci :

Code : Tout sélectionner

With $oHttpRequest
   .SetTimeouts ($ResolveTimeout, $ConnectTimeout, $SendTimeout, $ReceiveTimeout)
   .Open ("GET", $sTestUrl)
   .Send
.Send
.Send^ ERROR
J'ai regardé du côté des includes pour voir ce qui manquerait.. mais je ne trouve pas la réponse.

Une petite idée ?

Par avance merci.
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: [..] - Tester des liens internet ( liens brisés )

#4

Message par PandiPanda »

$oHttpRequest.Send() ?

ceci;

Code : Tout sélectionner

; En utilisant le script sous cette forme : 
    $oHttpRequest.SetTimeouts($ResolveTimeout, $ConnectTimeout, $SendTimeout, $ReceiveTimeout)
    $oHttpRequest.Open("GET", $sTestUrl)
    $oHttpRequest.Send[color=#FF0000]()[/color]
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
jordane45
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 03 févr. 2010 12:13
Localisation : Orléans
Status : Hors ligne

Re: [..] - Tester des liens internet ( liens brisés )

#5

Message par jordane45 »

bon.. y'a du mieux... mais ce n'est pas encore ça.. :-(
### COM Error ! Number: 80020009 ScriptLine: 53 Description:The operation timed out

Code : Tout sélectionner

 $oHttpRequest.Send()           ; ligne 53
J'ai modifié les variables de timeout pour voir.. mais je n'obtiens rien de plus :|

:?:
De votre côté est ce que ce script fonctionne ? ( avec comme URL à tester par exemple :
http://autoitscript.fr/forum/posting.ph ... f=3&t=8441 )

Si ça se trouve ça vient des parametres du proxy de ma boite....

Cordialement,
Jordane
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] - Tester des liens internet ( liens brisés )

#6

Message par Tlem »

J'ai modifié la fonction pour les besoins.
Essayez ceci :

Code : Tout sélectionner

If _UploadTester("http://autoitscript.fr/forum/posting.php?mode=reply&f=3&t=8441") Then
    MsgBox(32, "Resultat", "L'adresse existe" & @TAB)
Else
    MsgBox(16, "Resultat", "L'adresse n'existe pas" & @TAB)
EndIf

Func _UploadTester($sTestUrl)
    $oHttpRequest = ""
    $oHttpRequest = ObjCreate("MSXML2.ServerXMLHTTP")
    $ResolveTimeout = 500
    $ConnectTimeout = 500
    $SendTimeout = 500
    $ReceiveTimeout = 500

    $oHttpRequest.SetTimeouts($ResolveTimeout, $ConnectTimeout, $SendTimeout, $ReceiveTimeout)
    $oHttpRequest.Open("GET", $sTestUrl)
    $oHttpRequest.Send

    If $oHttpRequest.Status = 404 Then  ; Err 404
        Return 0
    Else                                ; URL exist
        Return 1
    EndIf
EndFunc   ;==>_UploadTester
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jordane45
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 03 févr. 2010 12:13
Localisation : Orléans
Status : Hors ligne

Re: [..] - Tester des liens internet ( liens brisés )

#7

Message par jordane45 »

Désolé mais cela ne fonctionne pas.
exemple avec une url qui n'existe pas : $url = "http://autoitscript.fr/forum/test/posting.php"
### COM Error ! Number: 80020009 ScriptLine: 112 Description:The operation timed out
### COM Error ! Number: 80020009 ScriptLine: 114 Description:Les données nécessaires pour terminer cette opération ne sont pas encore disponibles.
Pour lui ( le script) la réponse est toujours = 1

Est ce que de votre côté ça fonctionne ?
Si oui, je pense que le souci vient du proxy de ma boite, et dans ce cas je testerai de chez moi.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] - Tester des liens internet ( liens brisés )

#8

Message par Tlem »

Oui, je l'ai testé et il fonctionne pour moi !
Avez-vous la dernière version de AutoIt 3.3.6.1 ?
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre