【问题标题】:Too many redirects occurred trying to load URL in Jsoup尝试在 Jsoup 中加载 URL 时发生了太多重定向
【发布时间】:2018-10-24 02:45:36
【问题描述】:

我正在尝试抓取一些 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
  • 我试过了,发现它一遍又一遍地访问同一个 URL。你能告诉我为什么会这样吗,因为如果你在浏览器中打开链接它可以正常工作@AbhishekPandey
  • 嘿,我无法让您准确找到异常的位置,最好粘贴您的完整代码 sn-p 并共享异常堆栈跟踪。请注意,对于使用 1.8.3 版 org.jsoup 的我来说,我能够看到 doc 对象的主体,而共享 URL 没有任何重定向异常。
  • 我已经更新了你可以看看的问题,我正在使用版本 1.10.2 org.jsoup @AbhishekPandey
  • 我已经更新了我的回答,尝试使用更新的版本,它会起作用。

标签: java jsoup


【解决方案1】:

org.jsoup jar 的 1.10.2 版本存在问题。引用错误修复提交消息。

  • 修正:在 Jsoup.Connection 中,如果重定向包含带有 %xx 转义的查询字符串,它们将被双重转义 在执行重定向之前,导致获取的位置不正确。

阅读此https://github.com/jhy/jsoup/issues/826 了解更多信息。后来上述问题在 1.10.3 版本中得到解决。所以只需更新版本并重试。

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

你会得到以上依赖的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多