Jsoup解析:从Element中获取文本在Android中不起作用

时间:2014-02-01 12:58:18

标签: android json web-scraping jsoup wikipedia-api

我正在使用Jsoup在Android中解析维基百科。我希望在这篇HTML中获得“SecciónSur-Norte”:

<div class="thumb tright">
    <div class="thumbinner" style="width:302px;">
         <a href="//commons.wikimedia.org/wiki/File:Cheops-Pyramide.png" class="image">
             <img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cheops-Pyramide.png/300px-Cheops-Pyramide.png" width="300" height="227" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cheops-Pyramide.png/450px-Cheops-Pyramide.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cheops-Pyramide.png/600px-Cheops-Pyramide.png 2x">
         </a>
         <div class="thumbcaption">
              <div class="magnify">
                <a href="/wiki/Archivo:Cheops-Pyramide.png" class="internal" title="Aumentar">
                    <img src="//bits.wikimedia.org/static-1.23wmf10/skins/common/images/magnify-clip.png" width="15" height="11" alt="">
                </a>
              </div>
               Sección Sur-Norte. <--> Text I want to scrapp
          </div>
     </div>
</div>

我正在选择'thumbinner'作为元素。我试图通过以下方式获得'SecciónSur-Norte':

Elements thumbCaption = thumbinner.select("div[class*=thumbcaption]");
Element myThumbCaption = thumbCaption.first();
Log.d("", "Thumbcaptions number of elements: " + thumbCaption.size());
Log.d("", "MyThumbcaption: text:  " + aver.text());

但是在日志中我得到的拇指缩放有8个元素(在该点之后文档中的所有'thumbcaption'元素)。而且我得到的比MyThumbcaption文本是文件中的所有文本之后)。

我怎么才能废弃'SecciónSur-Norte'?


更多信息:

我通过以下方式从img名称获取了thumbinner元素:

Elements imgs = doc.select("img[src*=" + name + "]"); 
Element img = imgs.first(); // Image selected
Element parentCaption = img.parent();
Element thumbinner = parentCaption.parent();

1 个答案:

答案 0 :(得分:0)

尝试在thumbcaption div上使用ownText()方法。它仅获取元素所拥有的文本,忽略其子元素所拥有的任何文本。

示例:

Element myThumbCaption = thumbCaption.first();
System.out.println(myThumbCaption.ownText());

应输出:

Sección Sur-Norte.

您可以详细了解此方法here