Слишком много перенаправлений при попытке загрузить URL в Jsoup - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь просканировать некоторые ссылки на 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) и наоборот, но это никак не помогает.Можете ли вы направить меня в этом отношении?

1 Ответ

0 голосов
/ 23 октября 2018

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

  • Исправление: в Jsoup.Connection, если перенаправление содержало строку запроса с% xx escape-символами, они были бы дважды экранированы перед последующим перенаправлением, что привело кизвлечение неверного местоположения.

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

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

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

...