对于第一个问题,您可以分两个步骤进行连接/阅读,停止在中间询问状态代码,如下所示:
Connection.Response response = Jsoup.connect(sitemapPath) .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") .timeout(10000) .execute();int statusCode = response.statusCode();if(statusCode == 200) { document doc = connection.get(); Elements element = doc.select("loc"); for (Element urls : element) { System.out.println(urls.text()); }}else { System.out.println("received error pre : " + statusCode);}请注意,如果该
execute()方法
IOException无法连接到服务器,或者响应的格式错误,例如HTTP等,则该方法将失败,因此您需要进行处理。但是,只要服务器说出了一些有意义的内容,您就可以读取状态码并继续。另外,如果您已要求Jsoup遵循重定向,则不会看到
30x响应代码b
/ c Jsoup将从获取的最后一页设置状态代码。
至于第二个问题,您需要做的是围绕我刚刚给您的代码示例循环,并用try /
catch块包装
SocketTimeoutException。当您捕获异常时,循环应继续。如果能够获取数据,则返回或中断。喊如果您需要更多帮助!



