Я пытаюсь получить исходный код для следующей страницы: http://www.amazon.com/gp/offer-listing/082470732X/ref=dp_olp_0?ie=UTF8&redirect=true&condition=all (Обратите внимание, что Amazon переместит вас на другую страницу, если вы нажмете на ссылку. Чтобы перейти на страницу, которую мне интересно читатьПожалуйста, скопируйте ссылку и вставьте ее в пустую вкладку в вашем браузере. Спасибо!)
Обычно используя API java.net, я могу получить исходный код для большинства URL-адресов практически без проблем, однако длявыше по ссылке ничего не получаю.Оказалось, что входной поток, сгенерированный соединением, закодирован gzip, поэтому я попробовал следующее:
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream is = urlConnection.getInputStream();
HttpURLConnection.setFollowRedirects(true);
urlConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");
String encoding = urlConnection.getContentEncoding();
if (encoding != null && encoding.equalsIgnoreCase("gzip")) {
is = new GZIPInputStream(is);
} else if (encoding != null && encoding.equalsIgnoreCase("deflate")) {
is = new InflaterInputStream((is), new Inflater(true));
}
Однако на этот раз я определенно получаю следующую ошибку:
java.io.EOFException
at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:249)
at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:239)
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:142)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:67)
at domain.logic.ItemScraper.loadURL(ItemScraper.java:405)
at domain.logic.ItemScraper.main(ItemScraper.java:510)
Кто-нибудь может увидеть мою ошибку?Есть ли другой способ прочитать эту страницу?Может кто-нибудь объяснить мне, почему мой браузер (firefox) может читать его, но я не могу прочитать исходный код с помощью Java?
Заранее спасибо, с наилучшими пожеланиями,