使用JSoup解析HTML

使用JSoup解析HTML,jsoup,Jsoup,我想解析出Nasa页面上的描述,页面底部的文本 我该怎么做 首先,您需要连接到页面并将其解析为文档(让舒尔导入Jsoup),然后您可以使用来选择所需内容 这里有一个例子: // Connect to page and parse html into a 'Document' Document doc = Jsoup.connect("http://photojournal.jpl.nasa.gov/catalog/PIA16465").get(); for( Element element

我想解析出Nasa页面上的描述,页面底部的文本


我该怎么做

首先,您需要连接到页面并将其解析为
文档(让舒尔导入Jsoup),然后您可以使用来选择所需内容

这里有一个例子:

// 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
    }
}

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

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

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

使用jsoup阅读页面,然后编写代码以导航到适当的区域并拉出文本。如果java不是你的拿手菜,那就去考虑一下漂亮的汤吧。我不是java专家,不是Android,不是HTML。我读了一些书。如果简单的话,我正在寻找示例代码。啊,这是我的问题。我有Jsoup和w3c.dom。我如何区分这两者?啊,我只是完全限定了它。现在你的循环工作了!奥利奥,谢谢!!现在,我如何找到第一个“dd”标记后的第一个“p”tage?这就是我想要的文本。
Element firstTag = doc.select("dd p").first();