gpt4 book ai didi

工作页面上的 Java HtmlUnit 301 状态代码

转载 作者:行者123 更新时间:2023-12-01 11:18:27 29 4
gpt4 key购买 nike

当尝试通过 htmlUnit 加载页面时,我总是收到 301 错误,即使完全相同的页面在浏览器中加载良好。

给我错误的代码是

public String getPage(String url) {
try {
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(false);
webClient.getOptions().setRedirectEnabled(false);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
// webClient.getOptions().setTimeout();

final HtmlPage page = webClient.getPage(url);
return page.asText();
} catch (IOException ex) {
Logger.getLogger(Worker.class.getName()).log(Level.SEVERE, null, ex);
} catch (FailingHttpStatusCodeException ex) {
Logger.getLogger(Worker.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}

其中urlhttp://www.instagram.com/name(也尝试过https,同样的错误)

返回的错误是

> Jul 20, 2015 1:52:20 PM com.gargoylesoftware.htmlunit.WebClient
> printContentIfNecessary INFO: statusCode=[301] contentType=[text/html]
> Jul 20, 2015 1:52:20 PM com.gargoylesoftware.htmlunit.WebClient
> printContentIfNecessary INFO: <html> <head><title>301 Moved
> Permanently</title></head> <body bgcolor="white"> <center><h1>301
> Moved Permanently</h1></center> <hr><center>nginx</center> </body>
> </html>

但是,当我从浏览器转到 http://www.instagram.com/name 时,它加载得很好。我听说 Jsoup 可能对我想做的事情(获取页面文本)很有用,但我更熟悉 htmlUnit。如果您对我的代码有修复,或者有替代方法,那么我很乐意尝试。

最佳答案

我刚刚在浏览器中查看。 301 也会发生在普通浏览器中。 301 是“永久移动”重定向至

https://instagram.com/name

您可以通过设置selenium webdriver的重定向行为

webClient.getOptions().setRedirectEnabled(true);

关于Jsoup:

如果您尝试解析的页面是直接加载的,并且没有通过 AJAX 填充重要的 DOM 元素,那么 Jsoup 确实是更好的选择。它比 Selenium 实例快得多。只要有可能,我更喜欢 Jsoup。如果您需要更灵活地获取页面,那么您可能需要研究 Apache HttpClient,我经常使用它来获取页面。我仍然使用 JSoup,但仅用于解析,而不是用于实际从网络上获取页面。但如果工作很简单并且您的网络访问不受代理等的阻碍,您也可以简单地使用 JSoup 连接。 Selenium 非常适合测试以及需要运行客户端 JavaScript 的情况。这样做的代价是它的内存匮乏和缓慢。

关于工作页面上的 Java HtmlUnit 301 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523268/

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