使用Jsoup

时间:2017-01-23 10:01:19

标签: java

编辑:我显然已经解决了强制代码获取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

感谢您的建议。

0 个答案:

没有答案