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

使用Jsoup解析div中的元素

太叔望
2023-03-14

这是我试图解析的html:

<div class="entry">
    <img src="http://www.example.com/image.jpg" alt="Image Title">
    <p>Here is some text</p>
    <p>Here is some more text</p>
</div>

我想得到中的文本

Document doc = Jsoup.parse(line);
Elements descs = doc.getElementsByClass("entry");

for (Element desc : descs) {
    String text = desc.getElementsByTag("p").first().text();
    myArrayList.add(text);
}

但这根本不起作用。我对Jsoup很陌生,但它似乎有其局限性。如果我能在

我正在使用一个BufferedReader一次一行地读取html文件。


共有3个答案

景仲渊
2023-03-14

在您的for-循环中:

Elements ps = desc.select("p");

(http://jsoup.org/apidocs/org/jsoup/nodes/Element.html#select(java.lang.弦))

尹兴生
2023-03-14

不确定为什么要逐行阅读html。但是,如果要阅读整个html,请使用以下代码:

String line = "<div class=\"entry\">" + 
                "<img src=\"http://www.example.com/image.jpg\" alt=\"Image Title\">" + 
                "<p>Here is some text</p>" + 
                "<p>Here is some more text</p>" + 
              "</div>";

Document doc = Jsoup.parse(line);
Elements descs = doc.getElementsByClass("entry");

List<String> myArrayList = new ArrayList<String>();

for (Element desc : descs) {
    Elements paragraphs = desc.getElementsByTag("p");
    for (Element paragraph : paragraphs) {
        myArrayList.add(paragraph.text());
    }
}
邢起运
2023-03-14

您可以将您的方法更改为以下内容:

Document doc = Jsoup.parse(line);
Elements pElems = doc.select("div.entry > p");

for (Element pElem : pElems) {
   myArrayList.add(pElem.data());
}
 类似资料:
  • 我试图从这些div标签中获取文本,但是它们都不返回任何内容: HTML: 我想得到div类“消息”和h4标记和跨越“日期时间”中的文本,我试图: 和: 但是他们没有成功。

  • 我试图从这个表中解析数据。例如,假设我想解析第二行中的第二个元素(称为SLO)。 我可以看到TR里面有一个TR,而SLO这个词甚至没有ID或任何东西。我如何解析这个? 这是代码: 我不知道在文档中放什么。选择(“”);因为我从未解析过这样的东西。我只解析过网页标题之类的东西。有人能帮我吗?

  • 给定此网页: 我试图选择div内部的第一个span,然后获取强值。到目前为止,我成功地收集了其他东西,但是我无法完成:

  • 问题内容: 我无法使用Jsoup库从此处获取div 。 这是我的代码: 问题答案: 此标记中的文本不是初始html的一部分,而是在页面加载后由JavaScript设置的。您可以通过在浏览器中禁用JavaScript进行检查。Jsoup仅获取静态html,不执行JavaScript代码。 当您检查从页面建立的连接时,您会发现该值是通过对此API的请求进行更新的: https://shapeshift

  • 我是jsoup的新手,在使用非HTML元素(脚本)时遇到了一些困难。我有以下HTML: 用于显示这一点的应用程序知道如何处理 和.语句。因此,当我简单地用jsoup解析文本时,<和>被编码,html被重新组织,所以它不能正确地执行或显示。例如: 我的最终目标是添加一些css和js包含,并修改几个元素属性。那真的不是问题,我已经解决了那么多了。问题是我不知道如何保留非HTML元素,并将格式与原始格式

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