从网站读取数据的问题

时间:2010-11-22 23:17:08

标签: java stream html-parsing

我写了一个应用程序,解析机场网站上的数据 - 谢列梅捷沃(http://svo.aero/timetable/today/)和多莫杰多沃(http://www.domodedovo.ru/ru/main/) airindicator / flightnew /)。

我使用网站的链接创建一个对象URL。接下来,我调用openStream方法。之后,此流与解析器HTMLEditorKit一起使用。

在多莫杰多沃(Domodedovo),它运作良好,但谢列梅捷沃机场计划表现奇怪。首先,应用程序的一定数量的启动失败 - 流包含未知编码的符号,并且文本的长度明显小于实际页面的内容。然后意外发生 - 一些成功的运行,返回所需的数据 - 然后再次,一系列的挫折。它取决于什么?我无法追查这一点。

我尝试通过URLConnection发送特定的http-header,希望它们中的所有东西,如在浏览器中一切都打开正常。但它没有帮助。情况没有改变。

可能是什么问题?

P.S。我的英语不是很好,很抱歉。

1 个答案:

答案 0 :(得分:0)

问题解决了。

所有这一切都是因为服务器在将数据发送到应用程序时会压缩数据。

来自服务器的http标头:

Request Version: HTTP/1.1 
Response Code: 200 
Date: Mon, 22 Nov 2010 23:43:53 GMT 
Server: Apache/1.3.37 (Unix) mod_deflate/1.0.21 mod_accel/1.0.34 mod_ssl/2.8.28 OpenSSL/0.9.8e rus/PL30.22
Expires: Mon, 22 Nov 2010 23:44:44 GMT
Content-Encoding: gzip <-- !!!
Connection: close
Transfer-Encoding: chunked

因此,如果您将使用GZIPInputStream,则可以读取数据。

可能有人发现所有这些信息都对自己有帮助。