有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jsoup停止解析网页

Jsoup。解析(字符串html)停止工作。我有一个应用程序,当我多次使用jsoup解析不同的页面时,但当我想要解析一个大页面时,jsoup就停止了,仅此而已。它对一页的大小有限制还是最大

java.lang.OutOfMemoryError
at java.lang.Object.internalClone(Native Method)
at java.lang.Object.clone(Object.java:82)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:172)
at java.lang.StringBuilder.append(StringBuilder.java:224)
at org.jsoup.parser.Tokeniser.emit(Tokeniser.java:76)
at org.jsoup.parser.TokeniserState$1.read(TokeniserState.java:26)
at org.jsoup.parser.Tokeniser.read(Tokeniser.java:42)
at org.jsoup.parser.TreeBuilder.runParser(TreeBuilder.java:101)
at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:53)
at org.jsoup.parser.Parser.parse(Parser.java:24)
at org.jsoup.Jsoup.parse(Jsoup.java:44)
...

编辑: 我把一个页面的子字符串取了大约一千个字符,然后它成功地解析了它。 因此,Jsoup似乎可以管理的字符数有限。。数据类型在这里可能很重要

编辑:编辑: 在对可能出现的错误进行了一点分析并尝试编写自己的HTML解析器(这导致了很大的压力)后,我发现Dalvik VM在堆上只分配了4,3 MB,我认为这与pc不同。。我会努力增加


共 (1) 个答案

  1. # 1 楼答案

    尝试使用另一种方法(如HttpClient)获取页面内容,然后调用

    Jsoup.parse(String html);