首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jsoup从span类中提取数据问题

使用Jsoup从span类中提取数据问题
EN

Stack Overflow用户
提问于 2019-01-10 07:02:06
回答 1查看 62关注 0票数 0

你好,我需要一个解决方案,我的以下代码。我试着从span类中提取文本,但似乎所有的文本同时提取是可能的,这样我就可以一个一个地提取文本。

JAVA代码

代码语言:javascript
运行
复制
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输出

代码语言:javascript
运行
复制
<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输出

单独年龄,令人惊叹的愤怒,建筑,艺术态度,美女,最佳生日,大脑,商务机会,改变圣诞节,通讯,电脑,圣诞节,通讯,电脑,酷,爸爸,约会,死亡,设计,复活节,教育,平等经验,失败,信仰,家庭,著名父亲节,恐惧,健身,食物,宽恕,自由,友谊,乐趣,未来花园,上帝,好政府,毕业,伟大的幸福,健康,历史,幽默,想象,独立,灵感,智慧,嫉妒,领导,学习法律,生活,爱情,医学纪念日,男人,妈妈钱,早上,母亲节,激励电影在音乐,自然,新年,父母的耐心,爱国主义,和平,宠物,诗歌,政治,积极的权力关系,宗教尊重浪漫,悲伤,圣帕特里克日,科学,微笑,体育,力量,成功同情老师科技感谢感恩时光旅行信托真相情人节退伍军人日战争婚礼智慧女性工作

预期产出

  • 年龄
  • 独处
  • 令人惊奇
  • 发怒

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-10 07:12:00

代码语言:javascript
运行
复制
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);
            }
        }
    }
}

在您的代码中,el.getElementsByTag("a");返回元素。从元素级别获取text(),获取该元素及其所有子元素的组合文本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54123403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档