1

我正在尝试解析以下 URL 的 html:

http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-050-thermal-energy-fall-2002/

获取包含教师姓名的“< p >”标签的文本。所需信息位于“< p >”标签内,但我无法使用 JSoup 检索标签。我不知道我做错了什么,因为当我将标签保存在 Element 对象中时,我们称它为 'b' 而我调用 b.getAllElements() 它不显示

作为要素之一。Jsoup 的 getAllElements() 方法不就是这样做的吗?如果不能,请向我解释我显然缺少的层次结构,因为解析器无法找到

标签包含我需要的文本,在这种情况下是“Zoltan Spakovszky 教授”。

任何帮助将不胜感激。

public void getHomePageLinks()
{
    String html = "http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-050-thermal-energy-fall-2002/";
    org.jsoup.nodes.Document doc = Jsoup.parse(html);

    Elements bodies = doc.select("body");

    for(Element body : bodies )
    {
        System.out.println(body.getAllElements());
    }

}

输出是:

http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-050-thermal-energy-fall-2002/

它不应该打印出文档中body标签内的所有元素吗?

4

5 回答 5

3

我对 JSoup 一无所知,但似乎如果你想要讲师的名字,你可以通过以下方式访问它:

Element instructor = doc.select("div.chpstaff div p");
于 2012-09-11T02:41:15.573 回答
3

可能你已经解决了,但我一直在努力,所以无法抗拒提交

import java.io.IOException;
import java.util.logging.*;
import org.jsoup.*;
import org.jsoup.nodes.*;
import org.jsoup.select.*;
public class JavaApplication17 {

public static void main(String[] args) {

try {
   String url = "http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-050-thermal-energy-   fall-2002/";
  Document doc = Jsoup.connect(url).get();
  Elements paragraphs = doc.select("p");
  for(Element p : paragraphs)
    System.out.println(p.text());

} 
catch (IOException ex) {
  Logger.getLogger(JavaApplication17.class.getName())
        .log(Level.SEVERE, null, ex);
   }
  }
}

is it what u meant?
于 2013-06-19T07:38:24.497 回答
2

这是一个简短的示例:

// Connect to the website and parse it into a document
Document doc = Jsoup.connect("http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-050-thermal-energy-fall-2002/").get();

// Select all elements you need (se below for documentation)
Elements elements = doc.select("div[class=chpstaff] p");

// Get the text of the first element
String instructor = elements.first().text();

// eg. print the result
System.out.println(instructor);

在这里查看 jsoup 选择器 api 的文档:Jsoup Codebook
使用起来并不难,但功能非常强大。

于 2012-09-11T12:34:52.360 回答
1

这是一个代码

Document document = Jsoup.connect("http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-050-thermal-energy-fall-2002/").get();

        Elements elements = document.select("p");
        System.out.println(elements.html());

您可以使用 Jsoup 的 Selector 属性选择所有标签。它将返回的文本和标签

.

于 2012-09-14T12:16:35.483 回答
0
        Elements ele=doc.select("p");
      ' String text=ele.text();
        System.out.println(text);

试试这个,我认为它会工作

于 2016-03-01T07:08:04.630 回答