Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

validité d'url (d'après wget)

4 réponses
Avatar
christophe Raverdy
Bonjour


J'ai réussi à faire un programme en C qui lit un ensemble de documents,
détecte pour chacun les url et vérifie leur état.

L'essentiel du travail se fait ici : "wget --spider -S -T 5 -t 1 %s"

Globalement, je suis satisfait de l'exécution sauf lorsque l'url est une url
google

Au bout d'un loooong moment il y a rejet (403), par contre, en rédigeant je
me demande (mais il est tard) si le rejet ne vient pas au bout de X
requêtes envoyées trop proches les unes des autres.

Autant certaines réponses négatives arrivent très rapidement, autant les
rejets (en tous cas le dernier) semble ne jamais vouloir arriver.

Y a-t-il une explication connue ou déductible d'après la copie de la
commande (tapée en mode interactif, elle passe).


craverdy@Kyoto:~/fur> wget --spider -S -T 5 -t 3
http://groups.google.com/groups?as_umsgid=3d4f1b42
--01:34:14-- http://groups.google.com/groups?as_umsgid=3d4f1b42
=> `groups?as_umsgid=3d4f1b42'
Résolution de groups.google.com... 64.233.167.104, 64.233.167.147,
64.233.167.99
Connexion vers groups.google.com[64.233.167.104]:80...connecté.
requête HTTP transmise, en attente de la réponse...
1 HTTP/1.0 200 OK
2 Pragma: no-cache
3 Expires: Fri, 01 Jan 1990 00:00:00 GMT
4 Cache-Control: no-cache, must-revalidate
5 Set-Cookie:
PREF=ID=6bd25f3d6079b25c:TM=1126222455:LM=1126222455:S=TC252J0-6CwlQhH7;
expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
6 Content-Type: text/html; charset=ISO-8859-1
7 Server: GWS-GRFE/0.40
8 Content-Length: 0
9 Date: Thu, 08 Sep 2005 23:34:15 GMT
10 Connection: Keep-Alive
200 OK



D'autre part, en exploitant la page de manuel de wget, je tombe sur :

==========================================================================
--dns-timeout=seconds
Set the DNS lookup timeout to seconds seconds. DNS lookups that
don't complete within the specified time
will fail. By default, there is no timeout on DNS lookups, other
than that implemented by system libraries.

--connect-timeout=seconds
Set the connect timeout to seconds seconds. TCP connections that
take longer to establish will be aborted.
By default, there is no connect timeout, other than that
implemented by system libraries.

--read-timeout=seconds
Set the read (and write) timeout to seconds seconds. Reads that
take longer will fail. The default value
for read timeout is 900 seconds.

==========================================================================

Puis-je me faciliter le traitement en utilisant par exemple un timeout de 15
secondes pour chacune de ces options ?

Par avance, merci.

--
Avertissement : certains passages de ce texte sont susceptibles de heurter
la sensibilité de nos lecteurs les plus romantiques.

4 réponses

Avatar
Jacques Caron
Salut,

On Fri, 09 Sep 2005 01:55:18 +0200, christophe Raverdy
wrote:

Globalement, je suis satisfait de l'exécution sauf lorsque l'url est une
url google


Quel type d'URL Google?

Au bout d'un loooong moment il y a rejet (403), par contre, en rédigeant
je me demande (mais il est tard) si le rejet ne vient pas au bout de X
requêtes envoyées trop proches les unes des autres.


Il y a ce genre de filtres au moins sur les pages Adwords de Google, je ne
sais pas si c'est le cas sur l'ensemble du service. Mais la dernière fois
que j'ai essayé il me semble que la réponse 403 était assez rapide.
Maintenant, ça leur permettrait effectivement de ralentir la cadence de
force :-)

Puis-je me faciliter le traitement en utilisant par exemple un timeout
de 15 secondes pour chacune de ces options ?


Il faut plutôt mettre une petite pause entre deux appels...

Jacques.

Avatar
Mathieu Goutelle
Bonsoir,


J'ai réussi à faire un programme en C qui lit un ensemble de
documents, détecte pour chacun les url et vérifie leur état.

L'essentiel du travail se fait ici : "wget --spider -S -T 5 -t 1 %s"

Globalement, je suis satisfait de l'exécution sauf lorsque l'url est
une url google


Je crois bien que Google n'aime pas bien les trucs genre "wget" :
j'avais eu le même genre de problème lorsque je faisais des scripts
pour aller chercher des articles sur Google Groups. Le truc est
d'ajouter un '-U Mozilla' pour déguiser le User Agent.

[Peut-être faut-il rediriger mais je ne sais pas où. À vous de voir, si
la discussion se poursuit...]

Cordialement,
--
Q: Connaissez-vous la différence entre l'ignorance et l'apathie ?
R: J'en sais rien et je m'en fous.
Mathieu Goutelle - <URL:http://webperso.easyconnect.fr/goutelle>

Avatar
christophe Raverdy
Mathieu Goutelle a écrit:

[Peut-être faut-il rediriger mais je ne sais pas où. À vous de voir, si
la discussion se poursuit...]


A voir, je suis preneur de toute suggestion.

En continuant, je vois que la routine fonctionne correctement, par contreil
m'arrive de tomber sur une couille :

Ici, tout se passe bien...
=========================================================================== je recherche des url sur fr.loisirs.bd-1125654179.279257-calva.glou.org
- http://www.arpla.univ-paris8.fr/frab : Etat = inconnu
- http://www.deja.com/group/fr.rec.arts.bd : Etat = 302 (Moved Temporarily)
- http://animint.uru.org/internet/FAQ.html : Etat = 301 (Moved Permanently)
- http://www.undernet.org/ : Etat = 200 (OK)
- http://www.undernet.org/servers.html : Etat = 403 (Forbidden)
- http://www.contact.net/memtroni/ : Etat = 404 (Not Found)
- http://perso.wanadoo.fr/atelier.510/ : Etat = 200 (OK)


Mais là, la restitution dégénère
===========================================================================
http://satwww.epfl.ch/Manu/manifestation.asp?passee=0
=> `manifestation.asp?passee=0'
Résolution de satwww.epfl.ch... 128.178.9.64
Connexion vers satwww.epfl.ch[128.178.9.64]:80...connecté.
requête HTTP transmise, en attente de la réponse...
1 HTTP/1.1 404 Not Found
2 Date: Sat, 10 Sep 2005 11:37:08 GMT
3 Server: Apache/2
4 Vary: accept-language,accept-charset
5 Accept-Ranges: bytes
6 Keep-Alive: timeout, max0
7 Connection: Keep-Alive
8 Content-Type: text/html; charset=iso-8859-1
9 Content-Language: en
10 Expires: Sat, 10 Sep 2005 11:37:08 GMT
13:37:08 ERREUR 404: Not Found.
===========================================================================
De plus, la sortie ne peut se faire qu'en tuant le processus. (absence de
"fin de ligne" ?)

Quelqu'un a-t-il une explication sur ce comportement ?

La solution passe-t-elle par

http://www.unixtech.be/docs/php-fr/ref.sockets.html ?

--
Avertissement : certains passages de ce texte sont susceptibles de heurter
la sensibilité de nos lecteurs les plus romantiques.

Avatar
christophe Raverdy
christophe Raverdy a écrit:

De plus, la sortie ne peut se faire qu'en tuant le processus. (absence de
"fin de ligne" ?)
Quelqu'un a-t-il une explication sur ce comportement ?
La solution passe-t-elle par
http://www.unixtech.be/docs/php-fr/ref.sockets.html ?


Bon, je suis passé de "wget --spider -S -T 5 -t 1 %s 2>&1"
à "HEAD -t 4s %s HTTP/1.0 r 2>&1"

Par contre, c'est beaucoup plus lent. Avez vous une explication ?
(je reste preneur si un autre groupe est plus adapté)

--
Avertissement : certains passages de ce texte sont susceptibles de heurter
la sensibilité de nos lecteurs les plus romantiques.