gpt4 book ai didi

Java http 客户端 - 从 javascript 刷新后获取页面内容

转载 作者:行者123 更新时间:2023-12-02 06:51:58 26 4
gpt4 key购买 nike

有很多如何使用java客户端读取url页面内容的例子。例如,这里使用 apache http 客户端 ( http://hc.apache.org/httpclient-legacy/tutorial.html )

HttpClient client = new HttpClient();
GetMethod method = new GetMethod(url);
int statusCode = client.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + method.getStatusLine());
}
byte[] responseBody = method.getResponseBody();

这是我的问题:页面中的 url 可以在一段时间后重定向到其他 url。例如,在 url www.mysite.com/xxx 中,5 秒后从 javascript 重定向到 url www.mysite.com/realpage/xxx,但您不能直接转到 www.mysite.com/real-page/xxx,只能与重定向。

<script type="text/javascript">
function go() {
document.location.href = "http://www.mysite.com/realpage/xxx";
}
window.setTimeout("go()",5000);
</script>

如何在java客户端中获取此重定向,以及如何在java客户端中获取此页面的内容?Tnx!

最佳答案

这不是重定向,这是浏览器中的 JavaScript 导航到另一个页面。如果浏览器可以看到其他页面,那么您的应用程序、防火墙和代理允许的话也可以。因此您的代码可以简单地加载其他 URL。

但是,如果您的意思是,给定包含这段 JavaScript 的响应,您如何以编程方式运行 script 元素中的代码,那么这就困难得多了。

虽然在 Java 中运行 JavaScript 非常简单,但使用 javax.script API,使用完整的 DOM 运行它并处理对该 DOM 的更改要困难得多。

虽然编写具有自己的 DOM 的引擎可能是一个有趣的练习,但我的建议是使用像 Selenium WebDriver 这样的 API这已经为你完成了。

关于Java http 客户端 - 从 javascript 刷新后获取页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17922502/

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