编辑:我显然已经解决了强制代码获取HTML的问题。我遇到的问题是没有随机使用HTML。强迫我添加:
int intento = 0;
while (document == null) {
intento++;
System.out.println("Intento número: " + intento);
document = getHtmlDocument(urlPage);
}
我遇到了这个随机问题。有时它会在获取URL时遇到问题,因为它达到程序执行停止的超时。代码:
public static int getStatusConnectionCode(String url) {
Response response = null;
try {
response = Jsoup.connect(url).userAgent("Mozilla/5.0").timeout(100000).ignoreHttpErrors(true).execute();
} catch (IOException ex) {
System.out.println("Excepción al obtener el Status Code: " + ex.getMessage());
}
return response.statusCode();
}
/**
* Con este método devuelvo un objeto de la clase Document con el contenido del
* HTML de la web que me permitirá parsearlo con los métodos de la librelia JSoup
* @param url
* @return Documento con el HTML
*/
public static Document getHtmlDocument(String url) {
Document doc = null;
try {
doc = Jsoup.connect(url).userAgent("Mozilla/5.0").timeout(100000).get();
} catch (IOException ex) {
System.out.println("Excepción al obtener el HTML de la página" + ex.getMessage());
}
return doc;
}
我应该使用其他方法还是增加超时限制?问题是程序执行花了大约10个小时,有时问题发生在250号的另一个URL号500 ...这对我来说是无稽之谈...如果链接号250有问题,为什么如果我再次运行程序问题发生在链接号450(例如)?我一直在想它可能是互联网问题,但事实并非如此。
另一个案例的解决方案并未解决我的问题:Java JSoup error fetching URL
感谢您的建议。