Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup无错误挂起_Java_Parsing_Jsoup - Fatal编程技术网

Java Jsoup无错误挂起

Java Jsoup无错误挂起,java,parsing,jsoup,Java,Parsing,Jsoup,我对Jsoup和绞刑有意见。我当时正在测试Jsoup代码,这以前是有效的,但它突然停止了工作。从大约一周前开始,我就没有更改过任何代码,直到现在,它一直在工作 我一直在试图点击维基百科的主页,从中删除一个家庭作业的链接 它将挂起而不会抛出任何错误,程序也不会越过URL连接.get()方法。我等了大约10分钟,仍然什么也没发生 下面是我的代码: private WikiPage pullData(String url, WikiPage parent) { WikiPage wp;

我对Jsoup和绞刑有意见。我当时正在测试Jsoup代码,这以前是有效的,但它突然停止了工作。从大约一周前开始,我就没有更改过任何代码,直到现在,它一直在工作

我一直在试图点击维基百科的主页,从中删除一个家庭作业的链接

它将挂起而不会抛出任何错误,程序也不会越过URL连接
.get()
方法。我等了大约10分钟,仍然什么也没发生

下面是我的代码:

    private WikiPage pullData(String url, WikiPage parent) {
    WikiPage wp;
    try {

        String decodedURL = URLDecoder.decode(url, "UTF-8");
        Document doc = Jsoup.connect(decodedURL).get();
        Elements links = doc.select("a");
        Elements paragraphs = doc.select("p");
        Element t = doc.select("title").first();

        StringBuilder words = new StringBuilder();
        String title = t.text().replace(" - Wikipedia", "");

        paragraphs.forEach(e -> {
            words.append(e.text().toLowerCase());
        });

        wp = new WikiPage(url, title, parent);

        for (int i = 0; i < AMOUNT_LINKS; i++) {
            boolean properLink = false;
            while (!properLink) {
                //int rnd = R_G.nextInt(links.size());
                String a = links.get(i).attr("href");
                if (a.length() >= 5 && a.substring(0, 5).equals("/wiki") && containsChecker(a)) {
                    String BASE_URL = "https://en.wikipedia.org";
                    String decode = URLDecoder.decode(BASE_URL + a, "UTF-8");
                    wp.addChildren(decode);
                    properLink = true;
                }
            }
        }

        String[] splitWords = words.toString().replaceAll("[_$&+,:;=?@#|'<>.^*()%!\\[\\]\\-\"/{}]", " ").split(" ");
        for (String s : splitWords) {
            if (s.length() >= 1) {
                wp.addToWords(new WordCount(s, 1, 0));
            }
        }

        System.out.printf("%1$-10s %2$-45s\n", counter, title);
        counter++;

    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }

    return wp;

}
私有WikiPage pullData(字符串url,WikiPage父级){
维基网页;
试一试{
字符串decodedURL=urldecover.decode(url,“UTF-8”);
Document doc=Jsoup.connect(decodedull.get();
元素链接=文件选择(“a”);
元素段落=文件选择(“p”);
元素t=doc.select(“title”).first();
StringBuilder words=新建StringBuilder();
字符串title=t.text().replace(“-Wikipedia”,”);
段落。forEach(e->{
words.append(例如text().toLowerCase());
});
wp=新WikiPage(url、标题、父级);
对于(int i=0;i=5&&a.substring(0,5).equals(“/wiki”)&&containsChecker(a)){
字符串BASE_URL=”https://en.wikipedia.org";
字符串decode=urldecker.decode(BASE_URL+a,“UTF-8”);
wp.addChildren(解码);
properLink=true;
}
}
}
String[]splitWords=words.toString().replaceAll(“[\u$&+,:;=?@\\\\\\\\]\-\”/{}],“)。split(”);
for(字符串s:拆分字){
如果(s.长度()>=1){
wp.addToWords(新字数,1,0);
}
}
System.out.printf(“%1$-10s%2$-45s\n”,计数器,标题);
计数器++;
}捕获(例外e){
e、 printStackTrace();
返回null;
}
返回可湿性粉剂;
}
以下是程序运行10分钟后的屏幕截图,断点位于
Elements links=doc。选择(“a”);

我似乎看不出问题出在哪里,我甚至尝试过不同的网站,但根本不起作用


感谢您的帮助!

尝试在
Jsoup.connect…
处添加超时,类似于:
final Connection Connection=Jsoup.connect(url).timeout(…);final Connection.Response=Connection.execute();doc=Connection.get();
并查看是否获得IOẼxception()并获取有关problem@rperes这似乎仍然不起作用:(…我要看看Eclipse是否引发了相同的问题,可能是Intellij?对于像我这样遇到挂起问题的人来说:将Jsoup升级到1.12.1-SHAPSHOT为我解决了问题。