【问题标题】:Using jsoup.connect(url).get() to follow javascript redirects?使用 jsoup.connect(url).get() 跟踪 javascript 重定向?
【发布时间】:2013-09-26 21:26:13
【问题描述】:

我最初有这个问题:

Having trouble fetching the proper site in Java (second word for website search query gets cut off)

基本上,当我在网站上搜索包含两个词的商品时,例如“夏装”,我会被重定向到仅包含“夏装”的搜索。从那个答案怀疑这是因为 Sears 使用 javascript 进行重定向,而 Jsoup 不支持 javascript 重定向,所以我想知道是否有任何方法可以在仍然使用 Jsoup 的同时获取该网站。

【问题讨论】:

    标签: html redirect jsoup


    【解决方案1】:

    下面的代码检查元属性“REFRESH”和javascript重定向...如果其中任何一个存在,则设置RedirectedUrl变量。所以你知道你的目标......

        String RedirectedUrl=null;
        Elements meta = page.select("html head meta");
        if (meta.attr("http-equiv").contains("REFRESH")) {
            RedirectedUrl = meta.attr("content").split("=")[1];
        } else {
            if (page.toString().contains("window.location.href")) {
                meta = page.select("script");
                for (Element script:meta) {
                    String s = script.data();
                    if (!s.isEmpty() && s.startsWith("window.location.href")) {
                        int start = s.indexOf("=");
                        int end = s.indexOf(";");
                        if (start>0 && end >start) {
                            s = s.substring(start+1,end);
                            s =s.replace("'", "").replace("\"", "");        
                            RedirectedUrl = s.trim();
                            break;
                        }
                    }
                }
            }
        }
    
    ... now retrieve the redirected page again...
    

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多