1 votes

wget connexion réinitialisée par l'homologue

J'utilise le code suivant pour télécharger une liste de fichiers pdf :

wget -i list.txt -A .pdf

Certains fichiers pdf sont téléchargés correctement. Cependant, certains fichiers pdf ne sont pas téléchargés correctement. Lorsque je vérifie le journal, je vois le rapport suivant :

--2013-04-09 11:25:42--  http://amazon.com/111.pdf
Reusing existing connection to amazon.com:80.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
Length: unspecified
Saving to: `111.pdf'

    [                                         <=>       ] 1,045       --.-K/s   in 2m 9s

2013-04-09 11:27:51 (8.11 B/s) - Read error at byte 1045 (Connection reset by peer).Retrying.

--2013-04-09 11:27:52--  (try: 2)  http://amazon.com/111.pdf
Connecting to amazon.com (amazon.com)|00.00.55.888|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2680728 (2.6M) [application/pdf]
Saving to: `111.pdf'

61% [==============================>                    ] 1,649,221   10.0K/s   in 2m 41s

2013-04-09 11:30:41 (10.0 KB/s) - Read error at byte 1649221/2680728 (Connection reset by peer). Retrying.

--2013-04-09 11:30:43--  (try: 3)  http://amazon.com/111.pdf
Connecting to amazon.com (amazon.com)|00.00.55.888|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2680728 (2.6M) [application/pdf]
Saving to: `111.pdf'

100%[==================================================>] 2,680,728   10.1K/s   in 4m 22s

2013-04-09 11:35:11 (10.0 KB/s) - `111.pdf' saved [2680728/2680728]

Je me demande pourquoi je ne peux pas ouvrir le fichier pdf 111.pdf ? Le rapport ci-dessus indique qu'il est téléchargé à 100%. Est-ce à cause de la réinitialisation de la connexion par le pair ?

Je me demande s'il est possible de mettre le wget dans une boucle pour chaque fichier, de telle sorte qu'il ne sorte pas de la boucle, jusqu'à ce que le téléchargement soit terminé sans erreur ? J'ai trouvé la boucle suivante, cependant, elle donne une erreur. Le code et l'erreur sont indiqués ci-dessous :

Code :

while read -r link
do
        wget -A .pdf
        until [ $? = 0 ]
        do
            wget -A .pdf
        done
done < ./list.txt

Erreur :

Try `wget --help' for more options.
wget: missing URL
Usage: wget [OPTION]... [URL]...

J'utilise Cygwin sous Windows.

N'hésitez pas à me faire savoir si vous avez d'autres suggestions.

Merci pour votre aide.

5voto

Dennis Points 46916

Connexions fermées

Connexion fermée par l'homologue signifie généralement que la connexion a été délibérément fermée par la machine cible (ou toute autre sur la route de traçage).

Si l'on ajoute à cela le fait que le téléchargement fonctionne bien dans votre navigateur, je soupçonne que le serveur est configuré pour interdire ou ralentir les téléchargements par lots et/ou les téléchargeurs.

Fichier corrompu

Lors de la première tentative, seuls 1 045 ont été téléchargés et les en-têtes indiquent que la longueur n'était pas spécifiée. Je soupçonne que la première partie du fichier est en fait une sorte de message d'erreur (par exemple, vous devez attendre X secondes entre les téléchargements).

Solutions possibles

  • Usurper l'agent utilisateur d'un grand navigateur :

    --user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22"
  • Définissez des temps d'attente raisonnables ou aléatoires entre deux téléchargements :

    --wait=15
    --random-wait

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X