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

Jsoup是否自动删除元素?

诸葛令
2023-03-14

我已经使用了一段时间,但我遇到了一个错误,其中JSoup自动删除"表"元素,找不到任何解决方案...

Document doc = Jsoup.connect("http://www.planet-series.tv/dr-house/").get();
System.out.println(doc);

如果你导航到这段代码中的链接,你可以看到有多个元素“表”(例如:在“Saison 01(VF)”下,有22个包含“Episode x”的表元素),但是它们在JSOUP输出中不存在...

我试图用一个简单的HttpClient获取文档,打印它(表元素在那里),用Jsoup解析它,重新打印(表元素不见了),所以我知道这不是Javascript问题或其他什么问题,Jsoup确实造成了它。

你能告诉我我错过了什么吗?

共有1个答案

段志
2023-03-14

一些网站将根据用户代理数据(浏览器附加到请求的标题,用于通知网站浏览器类型)执行优化/限制。如果未设置用户代理,某些网站将阻止内容。

您可以尝试使用简化的mozilla用户代理来模拟真实的浏览器并获取数据:

Document doc = Jsoup.connect("http://www.planet-series.tv/dr-house/")
                .userAgent("mozilla").get();
System.out.println(doc);

如果这不起作用,并且您真的遇到了JSoup的错误,只需使用HttpClient获取数据,然后使用以下方法创建文档:

Document doc = Jsoup.parse(html);

其中html是包含页面内容的字符串。

 类似资料:
  • 尽管这听起来可能太基本了,但我想问一下如何使用JSoup从doc中删除元素。 我试图寻找它,但没有成功。 问题是: 这工作罚款。但是我相信一次又一次地选择相同的元素可能会证明内存饥饿。有可能吗? //尝试从doc中选择myNewElements。

  • 我正在使用以下代码用JSoup解析超文本标记语言: 我的html示例将包括如下文本: 然而,JSoup的输出总是: 我想要的输出是这样的: (请注意,该行在“some text”和“later”之后返回) 如果我想保留间距,有没有其他方法代替wholeText?我确实发现了以下类似的stackoverflow问题: 在使用jsoup将html转换为纯文本时,如何保留换行符? 然而,这个问题的问题是

  • 我有一个包含上述对象的集合 现在,如果我继续将对象添加到集合中,它是否会根据每个元素的值自动删除重复项?(我理解它在内部使用重写的equals和hashCode方法)。 最终集不应包含任何基于每个字段相等的重复。

  • 我使用使用捕获的计数器从容器中删除一半元素,如下所示。用编译的C 20 输出出乎意料。对于向量,删除了一个额外的元素: 我打印出结果,看起来是意外删除的元素 虽然这通常不是erase_if的正常用法,但我仍然很好奇为什么它只发生在向量上,而不发生在其他贴图上。我猜这和迭代器类型shenanigan有关。如果有人能详细解释,我将不胜感激。

  • 我想删除html和tables标签和里面的任何东西(childs),最好的方法是什么? 我试着像这样遍历文档,但它不起作用,在Jsoup文档中,它说从DOM及其子对象中删除元素:

  • 我正在尝试从JList中删除选定的元素。我知道怎么去掉一个 然而;有办法删除我选择的索引吗?我知道这个功能 返回一个Int数组。我想,如果我遍历它以移除索引,它应该会起作用,但是,我会从中得到错误(假设是因为索引#正在下降)。