Jsoup перестает анализировать веб-страницу

Jsoup.parse(String 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)
...

EDIT: я взял подстроку страницы для нескольких тысяч первых символов, а затем мне удалось ее проанализировать. Таким образом, кажется, что у Jsoup есть ограничение на количество символов, которыми он может управлять. Вероятно, здесь важен тип данных.

РЕДАКТИРОВАТЬ:, РЕДАКТИРОВАТЬ: Немного проанализировав, что может быть ошибкой, и попытавшись написать собственный анализатор HTML, что привело к большому стрессу, я обнаружил, что Dalvik VM назначает только 4,3 МБ в куче, что, как я полагаю, отличается от ПК к ПК. Попробую увеличить его.


person Community    schedule 12.08.2011    source источник
comment
Вы сталкиваетесь с этой проблемой на Android? Если да, то почему вы не включили тег Android? Вы бы, наверное, получили больше ответов...   -  person Indrek Kõue    schedule 11.11.2011
comment
@SYLARRR Наверное, просто забыли включить это. Что ж, Jsoup — это библиотека Java, поэтому она более универсальна, чем разработка для Android, а это значит, что я бы задал этот вопрос большему количеству разработчиков, если бы я просто добавил тег Android, это был бы более конкретный случай. я включу тег Android, потому что здесь я обсуждаю проблемы среды Android, спасибо :)   -  person    schedule 11.11.2011
comment
Что это за предел кучи, который вы пытаетесь сказать? 4,3Мб или 4,3Мб я не понимаю.   -  person Sudarshan Bhat    schedule 07.12.2011
comment
@Enigma, я пытаюсь сказать, что Dalvik VM выделяет 4,3 МБ в куче, я не знаю о реальном устройстве   -  person    schedule 07.12.2011


Ответы (1)


Попробуйте получить содержимое страницы другим методом, например HttpClient, а затем вызовите

Jsoup.parse(String html);
person Ali Hashemi    schedule 23.07.2013