Команда тайм-аута Wget не удалась для определенного URL-адреса из-за неуказанной длины содержимого

wget полезен в моих проектах по интеллектуальному анализу данных. Сегодня я пытаюсь получить следующий файл web. Его тип содержимого не указан, поэтому соединение зависает до того, как я завершу процесс. Я пробовал варианты для -T , --connect-timeout --read-timeout и --no-http-keep-alive, все потерпело неудачу. Пытаюсь гуглить ответ, читал человека wget. Нет решения. Кто-то намекает, что проблема может быть ошибкой для конкретных версий. Я не знаю. Я публикую свой вопрос здесь, просто хочу убедиться, что кто-то его знает.

Кстати, моя ОС — Ubuntu 10.04 LTS Lucid Lynx для i386.

wget --connect-timeout 3 --read-time 3 --debug http://www.crvanguard.com.cn/custom/crv/sales/hb.jsp?province=101&city=1010001&shop=0&sale_type=0&pageNo=1

Вот отладочная информация (некоторые китайские части отладочной информации переведены на английский):

DEBUG output created by Wget 1.12 on linux-gnu.

--2010-06-17 19:18:29--  http://www.crvanguard.com.cn/custom/crv/sales/hb.jsp?province=101
Resolving host www.crvanguard.com.cn... 219.134.63.193
Caching www.crvanguard.com.cn => 219.134.63.193
Connecting www.crvanguard.com.cn|219.134.63.193|:80... connected。
Created socket 3.
Releasing 0x09b79090 (new refcount 1).

---request begin---
GET /custom/crv/sales/hb.jsp?province=101 HTTP/1.0
User-Agent: Wget/1.12 (linux-gnu)
Accept: */*
Host: www.crvanguard.com.cn
Connection: Keep-Alive

---request end---
HTTP request sent, waiting for response... 
---response begin---
HTTP/1.1 200 OK
Date: Thu, 17 Jun 2010 11:09:10 GMT
Server: IBM_HTTP_Server
Surrogate-Control: no-store
Set-Cookie: JSESSIONID=0000I2ewO_IHpH5Kly3d8DKm6vn:-1; Path=/
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Cache-Control: no-cache="set-cookie, set-cookie2"
Connection: close
Content-Type: text/html; charset=GBK
Content-Language: zh-CN

---response end---
200 OK

Stored cookie www.crvanguard.com.cn -1 (ANY) /   [expiry none] JSESSIONID 0000I2ewO_IHpH5Kly3d8DKm6vn:-1
Content-length: unspecified [text/html]
Saving to: “hb.jsp?province=101.1”

    [                                                                                 ] 157,669      210K/s   in 0.7s    

Closed fd 3
2010-06-17 19:18:29 (210 KB/s) - “hb.jsp?province=101.1” saved [157669]

^C
[10]   Done                    wget --connect-timeout 3 --read-time 3 --debug http://www.crvanguard.com.cn/custom/crv/sales/hb.jsp?province=101
[11]   Done                    city=1010001
[12]   Done                    shop=0
[13]   Done                    sale_type=0

Кажется, что wget не может успешно отключить ссылку, даже если я указал параметры тайм-аута и запретил параметры http-keep-alive.

Я использую неправильные параметры? Это ошибка? Заранее спасибо.


person Allan K Liu    schedule 17.06.2010    source источник


Ответы (1)


Ваша проблема в том, что оболочка интерпретирует амперсанды в URL-адресе. Поместите URL-адрес в одинарные кавычки.

Технически, на сервере есть ошибка. Если сервер использует HTTP 1.1, он должен указать один из следующих заголовков:

  • Длина контента: 1234
  • Передача-кодирование: по частям

Однако wget может справиться с этим.

person Sjoerd    schedule 17.06.2010
comment
Я пробовал, одинарные кавычки сработали. Спасибо за ваш быстрый ответ. На самом деле я пробовал версию для Windows. одинарные кавычки также работают. - person Allan K Liu; 17.06.2010