Произошло слишком много перенаправлений при попытке загрузить URL-адрес в Jsoup

Я пытаюсь сканировать некоторые ссылки mediafire и сталкиваюсь с проблемой слишком большого количества перенаправлений, которые я тщательно искал в Интернете, но проблема, с которой я столкнулся, заключается в том, что некоторые URL-адреса не получают ошибку «Слишком много перенаправлений», в то время как некоторые из них Не могли бы вы помочь мне в том, что я делаю неправильно?

try{
        String url = "http://www.mediafire.com/file/110n342iorl685e/Guns-n%27-Roses_Paradise-City-TS_v1_2_DD_p.psarc";
        Document doc3 = Jsoup.connect(url).userAgent("Mozilla/5.0").timeout(0).get();
            for (Element sub3childrow : doc3.select("div.download_link")) {
                String link=sub3childrow.select("a").attr("href");
                System.out.println(link);
            }
    }catch(Exception ex){
            ex.printStackTrace();
        }

А это трассировка стека:

java.io.IOException: Too many redirects occurred trying to load URL http://www.mediafire.com/file/110n342iorl685e/Guns-n%2527-Roses_Paradise-City-TS_v1_2_DD_p.psarc
at org.jsoup.helper.HttpConnection$Response.<init>(HttpConnection.java:623)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:656)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:676)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:628)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:260)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:249)
at custom_file_downloader.RedirectExample.main(RedirectExample.java:23)

Я пытался установить followRedirects (true) и наоборот, но это все равно не помогает. Можете ли вы помочь мне в этом вопросе?

Почему бы вам не проверить, перенаправляет ли первый URL-адрес или нет, а затем получить правильный URL-адрес документа? Например, обратитесь к этому mkyong.com/java/jsoup-check-redirect-url

Abhishek 23.10.2018 14:14

Я попробовал и узнал, что он снова и снова посещает один и тот же URL. Не могли бы вы сообщить мне, почему он это делает, потому что если вы откроете ссылку в браузере, она отлично работает @AbhishekPandey

Moazam Raza 23.10.2018 14:41

Привет, я не могу объяснить вам, где именно вы получаете исключение, лучше вставьте полный фрагмент кода, а также поделитесь трассировкой стека исключений. Обратите внимание, что для меня с версией 1.8.3 org.jsoup я могу видеть тело объекта документа без исключения перенаправления для общего URL.

Abhishek 23.10.2018 18:52

Я обновил вопрос, который вы можете посмотреть, и использую версию 1.10.2 org.jsoup @AbhishekPandey

Moazam Raza 23.10.2018 19:32

Я обновил свой ответ в ответ, попробуйте с обновленной версией, он будет работать.

Abhishek 23.10.2018 20:47
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
724
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возникла проблема с версией 1.10.2 jar-файла org.jsoup. Сообщение фиксации исправления ошибки цитирования.

  • Bugfix: In Jsoup.Connection, if a redirect contained a query string with %xx escapes, they would be double escaped before the redirect was followed, leading to fetching an incorrect location.

Прочтите этот https://github.com/jhy/jsoup/issues/826, чтобы узнать больше. Позже проблема была решена в версии 1.10.3. Так что просто обновите версию и попробуйте еще раз.

    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.10.3</version>
    </dependency>

Вы получите результат с указанной выше зависимостью.

Другие вопросы по теме