使用JSoup解析HTML

时间:2012-11-17 22:35:30

标签: jsoup

我想解析this Nasa页面上的说明,页面底部的文字

我该怎么做?

1 个答案:

答案 0 :(得分:0)

首先,您需要连接到页面并将其解析为Document(确保您导入Jsoup),然后您可以使用Selector API选择您需要的任何内容。

以下是一个例子:

// Connect to page and parse html into a 'Document'
Document doc = Jsoup.connect("http://photojournal.jpl.nasa.gov/catalog/PIA16465").get();


for( Element element : doc.select("p") )    // Select all 'p'-Tags and loop over them
{
    if( element.hasText() )                 // Check if the element has text (since there are some empty too)
    {
        System.out.println(element.text()); // print the element's text
    }
}

- 编辑 -

for( Element element : doc.select("dd p") ) // Or: "dd > p"
{
    if( element.hasText() )
    {
        System.out.println(element.text());
        break;
    }
}

您可以使用以下内容代替循环:

Element firstTag = doc.select("dd p").first();

这将为您提供dd-Tag之后的第一个p-Tag。但是这里它不起作用,因为有许多空的p标签与之匹配。但是,您可以使用正则表达式选择器(请参阅上面的链接)来解决此问题,但是对于第一个循环更容易理解。