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

使用Jsoup从span类提取数据时出现问题

纪俊良
2023-03-14

你好,我需要我下面的代码的解决方案。我试图从跨度类中提取文本,但似乎所有的文本都在同一时间提取,这样我就可以一个接一个地提取文本。

JAVA代码

public class Exractor {
    public static void main(String[] args) throws IOException {
        Document d = Jsoup.connect("https://www.brainyquote.com/topics").get();
        Elements e = d.select("div.col-md-4");
        for(Element el : e){
            Elements name = el.getElementsByTag("a");
            String text = name.text();
            System.out.println(text);
        }
    }
}

超文本标记语言输出

html lang-html prettyprint-override"><div class="col-sm-6 col-md-4"> 
 <div class="bq_fl content indexContent topicContent"> 
  <div class="row"> 
   <div class="col-sm-6 col-xs-6"> 
    <div class="bqLn"> 
     <div class="bqLn"> 
      <a href="/topics/age" class="topicIndexChicklet" onclick="topicCl('/topics/age',1,'Index')">
	  <span class="topicContentName">Age</span> <span class="topicIndexArrow">
		<i class="fa fa-chevron-right" aria-hidden="true"></i>
	  </span> 
       <div style="clear:both"></div></a> 
     </div> 
    </div> 
    <div class="bqLn"> 
     <div class="bqLn"> 
      <a href="/topics/alone" class="topicIndexChicklet" onclick="topicCl('/topics/alone',2,'Index')">
	  <span class="topicContentName">Alone</span> <span class="topicIndexArrow">
	  <i class="fa fa-chevron-right" aria-hidden="true"></i>
	  </span> 
       <div style="clear:both"></div></a> 
     </div> 
    </div> 
    </div> 
   </div> 
  </div> 
 </div> 
</div>

JAVA输出

独处的年龄令人惊叹的愤怒周年纪念建筑艺术态度美丽最好的生日聪明的商务车机会改变圣诞节通信计算机酷勇气爸爸约会死亡设计饮食梦想复活节教育环境平等经历失败信仰家庭著名的父亲节恐惧金融健身食物宽恕自由友谊有趣的未来园艺上帝好政府毕业大幸福健康历史家希望幽默想象独立励志智慧嫉妒知识领导学习法律生活爱情婚姻医疗纪念日男人妈妈钱早上母亲节激励电影感动音乐自然新年养育耐心爱国主义和平宠物诗歌政治积极的权力关系宗教尊重浪漫悲伤圣帕特里克节科学微笑社会空间运动力量成功同情教师技术青少年感恩感恩时间旅行信任真相情人节退伍军人节战争婚礼智慧女人工作

预期产量

  • 年龄
  • 独自
  • 惊人
  • 愤怒

我做错了什么,但我想不出来,请帮帮我

共有1个答案

赵炯
2023-03-14
public class Exractor {
    public static void main(String[] args) throws IOException {
        Document d = Jsoup.connect("https://www.brainyquote.com/topics").get();
        Elements e = d.select("div.col-md-4");
        for(Element el : e){
            Elements names = el.getElementsByTag("a"); //getElementsByTag returns elements
        for(Element name: names) {
            String text = name.text();
            System.out.println(text);
            }
        }
    }
}

在你的密码里,艾尔。getElementsByTag(“a”);返回的元素。从元素级别获取文本()获取此元素及其所有子元素的组合文本。

 类似资料:
  • 需要从以下来源提取信息: 试过: 得到0个结果。问题只出在跨类上。JSOUP 1.7.2。

  • 我想从URL示例中获取一个图像博客头像:https://soundcloud.com/topsify 我试图得到: 但它还是空的。请支持获取头像url:https://i1.sndcdn.com/avatars-000132054558-5ra8gl-t500x500.jpg谢谢

  • 问题内容: 我想使用JSoup-framework提取此表,以将内容保存在“表”数组中。第一个tr-tag是表头。所有以下内容(不包括在内)均描述了内容。 我已经测试了这一个和其他一些,但是我没有让它们为我工作: 使用JSoup提取HTML表内容 问题答案: 这是一些示例代码,您如何仅选择标题: 你得到… 解析 文件 :(这里是和字符集,请参阅jsoup对铁道部的相关信息文件) 解析 网站 :(不

  • 当我试图从在线URL=forexalgerie.com中的表中获取数据时,我的目标是这些值: ...似乎我的代码一切正常: 但是结果包含表中的所有内容,除了我想要的值? 怎么了?

  • 我有一个带有ID、TEXT等列的表,这里的TEXT是超文本标记语言FORMAT中包含数据的Clob列 样本数据: 当我使用Jsoup.parse(AUDIT_SCOPE_LOB.text()时;我得到的数据如下 我对java知之甚少。我可以使用jsoup获取java代码来提取数据并重新运行下面的outpu吗 实际上,这个数据是一个样本数据。我有一些带有html标记的数据,这里没有提到。

  • 您好,我想得到的值以下的"交联",但我不知道如何做到这一点。 我正在使用Jsoup,下面是我的代码: 这就是我所拥有的: 你有什么想法可以得到价值,而不是“cotation”? 提前谢谢。