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

JSOUP:“parentTag>childTag”匹配,但“parentTag childTag”没有提供任何信息

朱英范
2023-03-14

编辑:似乎是1.8.3中的一个bug,但在1.11.2中可以正常工作。

我试图使用JSOUP1.8.3从Java解析html文档。我不理解某些选择器的行为(它们应该类似于jQuery选择器)。

请考虑以下最小示例(应该从StackOverflow问题中选择代码段):

package edu.example;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class App {
    public static void main(String[] args) throws Exception {
        Document doc = Jsoup.connect("http://stackoverflow.com/questions/48407833").get();
        Element question = doc.select("div#question div.post-text").first();
        Elements allChildren = question.children();
        Elements codeSnippets = allChildren.select("pre > code");
        System.out.println("code snippets start-----");
        System.out.println(codeSnippets);
        System.out.println("/code snippets end -----");
    }
}
    null

以下是相关HTML的节选,如果您点击“查看页面源”,您将会看到:

<div class="question" data-questionid="48407833"  id="question">
   ...
    <div class="post-text" itemprop="text">
       ...
       <pre><code>package edu.example;
       ...

ps:如果您想快速构建一个小项目并试用它,下面是Maven的最小pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>edu.example</groupId>
  <artifactId>jsoupselectorquestion</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>jsoupselectorquestion</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
      <version>1.8.3</version>
    </dependency>
  </dependencies>
</project>

共有1个答案

宣望
2023-03-14

原因是1.8中的一个bug。使用更实际的版本,例如1.11.2。

 类似资料:
  • 问题内容: 我在我的应用程序中使用Spring Social: 当我申请 到我的HomeController: 注入的工作方式如预期的一样,我可以从中获取信息。但是,当我将其应用到我的其他Cotrollers时,就像这样 我收到此错误: 我的猜测是我不能将Facebook注入带有注解@Transactional的Controller吗?我四处搜寻,但找不到任何解决方案。 问题答案: CGlib有一

  • 问题内容: 我正在尝试使用Keras实现一个简单的序列到序列模型。但是,我一直看到以下内容: 像其他的问题这个还是看这个问题在Github上认为,这可能有一些做的交叉熵损失函数; 但我看不到我在做什么错。 我不认为这是问题所在,但我要提一提,确切地说,我是每晚构建的TensorFlow 。 以下代码是一个独立的示例,应从上面重现异常: 更新资料 要点链接 Github问题链接 问题答案: 您的代码

  • 我在运行测试脚本后收到一个错误。我已经在其他测试脚本中运行了相同的方法,但我使用的这个脚本几乎与其他测试脚本相同。你能帮助我为什么会出现这个错误吗? 这是获取excel数据的方法。 这是我的数据提供程序方法

  • 我有一个Spring启动应用程序,它定义了: 写入kafka主题的REST控制器,STREAM_TOPIC_IN_QQQ 一个从STREAM_TOPIC_IN_QQQ(group pId="bar")和日志读取的KafkaListener 查看主题并记录的KStream,将其转换为另一种类型,然后将其写入STREAM_TOPIC_OUT_QQQ 另一个从STREAM_TOPIC_OUT_QQQ读取

  • 问题内容: 我只是熟悉Apache JackRabbit。我已经完成了一些用于文档管理的多用户存储库。 如果有人同时使用它们,您能回答这些问题吗? ModeShape是否以某种方式链接到JBoss?我对JBoss AS或任何其他JBoss工具没有太多经验。我看到了对tomcat的支持,但是有很多JBossy的东西 文档说将来的发行版应该具有UI集成,这还有很长的路要走吗?它将是什么样的UI集成?是

  • 从angular 4.4升级到5.0,并将所有HttpModule和Http更新到HttpClientModule后,我开始出现此错误。 我还再次添加了HttpModule,以确保这不是由于某些依赖关系造成的,但它并不能解决问题 应用程序内。模块,我已正确设置 我不知道这个错误是从哪里来的,或者我不知道如何去了解它。我也有一个警告(也放在下面),可能是相关的。 警告信息: