Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用jsoup获取span类文本_Html_Jsoup - Fatal编程技术网

Html 如何使用jsoup获取span类文本

Html 如何使用jsoup获取span类文本,html,jsoup,Html,Jsoup,我正在使用jsoup HTML解析器,并尝试进入span类并从中获取文本,但它不返回任何内容,并且其大小始终为零。我已经粘贴了HTML源代码的一小部分。请帮我提取文本 <div class="list_carousel"> <div class="rightfloat arrow-position"> <a class="prev disabled" id="ucHome_prev" href="#"><span>prev</span

我正在使用jsoup HTML解析器,并尝试进入span类并从中获取文本,但它不返回任何内容,并且其大小始终为零。我已经粘贴了HTML源代码的一小部分。请帮我提取文本

<div class="list_carousel">
<div class="rightfloat arrow-position">
    <a class="prev disabled" id="ucHome_prev" href="#"><span>prev</span></a>
    <a class="next" id="ucHome_next" href="#"><span>next</span></a>
</div>
<div id="uc-container" class="carousel_wrapper">
    <ul id="ucHome">

                <li modelID="587">  
                    <h3 class="margin-bottom10"><a href="/ford-cars/figo-aspire/" title="Ford Figo Aspire "> Ford Figo Aspire</a></h3>
                    <div class="border-dotted margin-bottom10"></div>
                    <div>Estimated Price: <span class="cw-sprite rupee-medium"></span> 5.50 - 7.50 lakhs</div>
        <div class="border-dotted margin-top10"></div>
                </li>

                <li modelID="899">
                    <h3 class="margin-bottom10"><a href="/chevrolet-cars/trailblazer/" title="Chevrolet Trailblazer "> Chevrolet Trailblazer</a></h3>
                    <div class="border-dotted margin-bottom10"></div>   
                    <div>Estimated Price: <span class="cw-sprite rupee-medium"></span> 32 - 40 lakhs</div>
        <div class="border-dotted margin-top10"></div>
                </li>
如果你对我的内容不是很清楚,请问我。提前谢谢。

试试看

System.out.println(doc.select("#ucHome div:nth-child(3)").text());

关于您的代码,有几点需要注意:

A) 无法获取跨度的文本,因为它首先没有文本:

<div>Estimated Price: 
  <span class="cw-sprite rupee-medium"></span>
  5.50 - 7.50 lakhs
</div>
都是一样的。您的选择器只拾取第一个。这就是为什么css中有一个类语法,您应该使用它:

"> div > span.cw-sprite.rupee-medium"
此外,如果你愿意,你可以先省去他

建议的解决方案

Elements lcEl = doc.getElementsByClass("list_carousel").first();
Elements spans = lcEl.select("span.cw-sprite.rupee-medium");
for (Element span:spans){
  Element priceDiv = span.parent();
  System.out.println(priceDiv.getText());
}

谢谢你,彼得,但我试过你的印刷品。为什么要打印这个?实际上,这个div就在
  • 里面,你是对的,是最后一个孩子。如何选择第三个孩子彼得?非常感谢你。你的解决方案是有效的。我必须改正我的错误
    "> div > span.cw-sprite.rupee-medium"
    
    Elements lcEl = doc.getElementsByClass("list_carousel").first();
    Elements spans = lcEl.select("span.cw-sprite.rupee-medium");
    for (Element span:spans){
      Element priceDiv = span.parent();
      System.out.println(priceDiv.getText());
    }