当前位置: 首页 > 知识库问答 >
问题:

Jsoup不解析整个html正文?

宋斌
2023-03-14

Jsoups解析是否存在某种类型的限制。我一直在处理内存问题,这是我在这个网站上公开的另一个问题,但我开始意识到我甚至没有得到我需要的所有信息。

我正在使用jsoup来解析一个html页面,它是一个测试页面,里面只有数百万个由空白分隔的数字。当我用jsoup解析它时,我可以得到一些文本,但它不会得到全部。

例如,如果我有一个string text,它包含来自.parse()的html,那么它只有整个网页中数字的一半。如果我转到网页并抓取最后一个号码,用html调用text上的.contains(),它将失败。但是,如果我检查.contains()中的一个数字,它在传递的html中占一半,这是什么意思?

更奇怪的是,如果我解析html并将其写入文本文件,除了页面上的前几个单词,文本是空的。测试页面基本上是“test page”,然后后面跟着几百万个数字,而在我的文本文件中,它只说“test page”,没有数字,但是有100%的数字,因为我可以在文本上调用.contains()来检查有哪些数字。

    html = (Jsoup.connect(url.toString()).get().html());
            Document doc = Jsoup.parse(html);
            text = (doc.body().text());         
            PrintWriter out = new PrintWriter("filename2.txt");
            out.write(Jsoup.parse(html).body().text());
            out.flush();
            out.close();

上次相关测试代码

编辑:在这上面浪费了这么多时间,答案就这么简单,不能用JSOUP解析url的完整html。基本上,jsoup上有1M的限制,因此您可以删除该限制

我解决了html解析问题,但没有解决文本无法打印到文件的问题:/

共有1个答案

狄法
2023-03-14

Jsoup既限制了检索文档的最大大小,也限制了获取文档的时间。您的文档似乎比默认值大。因此,必须指定其他限制:

html = Jsoup.connect(url.toString())
       .maxBodySize(0)
       .timeout(0)
       .get()
       .html();

将maxBodySize和timeout设置为0将完全删除限制。请注意,这可能会很危险,并使应用程序永远停顿。

 类似资料:
  • 主要内容:Jsoup 解析HTML正文 语法,Jsoup 解析HTML正文 说明,Jsoup 解析HTML正文 示例以下示例将展示将 HTML 片段字符串解析为 Element 对象作为 html 正文。 Jsoup 解析HTML正文 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 片段字符串。 body : 表示文档正文元素的子元素,等效于 document.getElementsByTag("body"

  • 然后我在Jsoup as中将xpath转换为CSS查询,以便稍后提取特定元素: 代码的执行没有正确定位我,而是定位到Firebug在XPath中引用的元素: 从最后来看,第一个区别是: 有没有任何替代Jsoup的方法可以处理这类问题?

  • 我想解析出这个Nasa页面上的描述,页面底部的文字 我该怎么做?

  • 我试图在这里使用JSOUP解析html标记。我对jsoup是新来的。基本上,我需要解析这些标记,获取这些标记中的文本,并应用class属性中提到的样式。 我正在创建一个SpannableStringBuilder,它可以创建子字符串,应用样式,并将它们附加到没有样式的文本中。 我不确定如何解析不在任何标记之间的字符串,例如“there are”和“worker from the”。 需要输出,例如

  • Jsoup库未解析给定URL的完整html。URL的原始html中缺少一些分区。 有趣的事情:http://facebook.com/search.php?init=s:email&q=somebody@gmail.com&type=users 如果您在jsoup的官方站点http://try.jsoup.org/中给出了上面提到的url,它通过提取正确地显示了url的确切html,但是在使用js

  • 主要内容:Jsoup 使用DOM解析HTML 语法,Jsoup 使用DOM解析HTML 说明,Jsoup 使用DOM解析HTML 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后如何使用类似 DOM 的方法。 Jsoup 使用DOM解析HTML 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 sampleDiv : 元素对象表示由 id“sampleDiv”标识的 html