Java Jsoup没有解析整个html正文?

Java Jsoup没有解析整个html正文?,java,web-scraping,web-crawler,html-parsing,jsoup,Java,Web Scraping,Web Crawler,Html Parsing,Jsoup,Jsoups解析是否存在某种类型的限制。我一直在处理内存问题,这是我在这个网站上打开的另一个问题,但我开始意识到我甚至没有得到我需要的所有信息 我使用jsoup解析一个html页面,它是一个测试页面,除了用空格分隔的数百万个数字外,什么都没有。当我用jsoup解析它时,我可以得到一些文本,但它不能得到所有文本 例如,如果我有一个字符串文本,其中包含来自.parse()的html,那么它在整个网页中只有一半的数字。如果我转到网页,抓取最后一个号码,用html调用文本上的.contains(),它将

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

我使用jsoup解析一个html页面,它是一个测试页面,除了用空格分隔的数百万个数字外,什么都没有。当我用jsoup解析它时,我可以得到一些文本,但它不能得到所有文本

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

更奇怪的是,如果我解析html并将其写入文本文件,文本除了页面上的前几个单词外都是空的。测试页面基本上说是“测试页面”,然后是数百万个数字,在我的文本文件中,它只说“测试页面”,没有数字,但是有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解析问题,但没有解决文本不会打印到文件的问题:/

Jsoup限制了检索到的文档的最大大小和获取文档的时间。您的文档似乎比默认值大。因此,您必须:


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

Jsoup会限制检索到的文档的最大大小和获取文档的时间。您的文档似乎比默认值大。因此,您必须:


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

谢谢您的回答,它确实帮助了我完成任务。我添加了以下代码行

.maxBodySize(0)
.timeout(60000)
.get();

谢谢你的回答,它真的帮助了我的任务。我添加了以下代码行

.maxBodySize(0)
.timeout(60000)
.get();