Команда Wget timeout не удалась для определенного URL из-за неуказанной длины содержимого - PullRequest
0 голосов
/ 17 июня 2010

wget полезен в моих проектах интеллектуального анализа данных.Сегодня я пытаюсь wget следующий веб.Его тип содержимого не указан, поэтому соединение прерывается до того, как я завершу процесс.Я попробовал варианты для -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

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

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

1 Ответ

1 голос
/ 17 июня 2010

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

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

  • Content-Length: 1234
  • Transfer-Encoding: chunked

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

...