0

我最初有这个问题:

无法在 Java 中获取正确的网站(网站搜索查询的第二个词被截断)

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

4

1 回答 1

3

下面的代码检查元属性“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...
于 2013-11-23T10:16:19.030 回答