我最初有这个问题:
Having trouble fetching the proper site in Java (second word for website search query gets cut off)
基本上,当我在网站上搜索带有两个单词的项目时,例如“夏装”,我会被重定向到只有“夏天”的搜索。从那个答案怀疑是因为Sears使用javascript重定向而Jsoup不支持javascript重定向,所以我想知道是否有任何方法可以在使用Jsoup的同时获取该网站。
答案 0 :(得分: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...