wget连接由peer重置


1

我使用以下代码下载pdf文件列表:

wget -i list.txt -A .pdf

一些pdf文件正确下载。但是,某些pdf文件未正确下载。当我检查日志时,我看到以下报告:

--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]

我想知道为什么我无法打开pdf文件111.pdf?上述报告称它已100%下载。是因为同伴重置了连接吗?

我想知道是否有可能将wget放在每个文件的循环中,这样它就不会退出循环,直到下载完成没有错误?我找到了以下循环,但它给出了一个错误。代码和错误如下所示:

码:

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

错误:

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

我在Windows上使用Cygwin。

如果您有其他建议,请告诉我。

谢谢您的帮助。


您是否可以在同一台服务器上下载该文件?如果您尝试在Web浏览器中下载它们会发生什么?
Dennis

@Dennis当我在浏览器中下载它们时,它看起来完美无瑕,我没有看到任何奇怪的东西。但是,当我在浏览器(chrome)中输入URL(.com / 111.pdf)时,它不会在浏览器中打开pdf文件,而是下载pdf文件。链接似乎在一台服务器上,但是,我不确定服务器地址是否与URL地址相同。
Si14 2013年

您是否有任何理由使用来自cygwin的wget而不是wget for Windows?
Karan 2013年

@Karan没有特别的理由。我正在使用Win 7(64位),我也可以使用wget for Windows。
Si14 2013年

Answers:


4

封闭连接

由对等方关闭的连接通常意味着目标机器(或跟踪路由上的任何其他机器)故意关闭连接。

结合下载在您的浏览器中运行良好的事实,我怀疑服务器配置为禁止或减慢批量下载和/或下载。

损坏的文件

在第一次尝试中,只下载了1,045,并且标题指出长度未指定。我怀疑文件的第一部分实际上是某种错误消息(例如,你必须在下载之间等待X秒)。

可能的解决方案

  • 欺骗主要浏览器的用户代理:

    --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"
    
  • 在两次下载之间设置合理或随机的等待时间:

    --wait=15
    --random-wait
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.