gpt4 book ai didi

java - jsoup可以处理元刷新重定向吗

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:44 25 4
gpt4 key购买 nike

我在使用 jsoup 时遇到问题我想做的是从 url 中获取一个文档,该文档将根据无法正常工作的元刷新 url 重定向到另一个 url,以清楚地解释我是否正在输入名为 http://www.amerisourcebergendrug.com 的网站 url这将根据元刷新 url 自动重定向到 http://www.amerisourcebergendrug.com/abcdrug/ 但我的 jsoup 仍然坚持使用 http://www.amerisourcebergendrug.com 而不是从 http://www.amerisourcebergendrug.com/abcdrug/ 重定向和获取

Document doc = Jsoup.connect("http://www.amerisourcebergendrug.com").get();

我也试过用,

Document doc = Jsoup.connect("http://www.amerisourcebergendrug.com").followRedirects(true).get();

但两者都不起作用

有什么解决方法吗?

更新:页面可能使用元刷新重定向方法

最佳答案

更新(不区分大小写且非常容错)


public static void main(String[] args) throws Exception {

URI uri = URI.create("http://www.amerisourcebergendrug.com");

Document d = Jsoup.connect(uri.toString()).get();

for (Element refresh : d.select("html head meta[http-equiv=refresh]")) {

Matcher m = Pattern.compile("(?si)\\d+;\\s*url=(.+)|\\d+")
.matcher(refresh.attr("content"));

// find the first one that is valid
if (m.matches()) {
if (m.group(1) != null)
d = Jsoup.connect(uri.resolve(m.group(1)).toString()).get();
break;
}
}
}

正确输出:

http://www.amerisourcebergendrug.com/abcdrug/

旧答案:

您确定它不起作用吗?对我来说:

System.out.println(Jsoup.connect("http://www.ibm.com").get().baseUri());

.. 正确输出 http://www.ibm.com/us/en/..

关于java - jsoup可以处理元刷新重定向吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com