[英]Html parsing with JSoup
我正在嘗試解析以下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()方法做什么嗎? 如果不能,請向我解釋我顯然缺少的層次結構,因為解析器無法找到
標簽,其中包含我需要的文本,在這種情況下為“ Prof. 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標簽內的所有元素?
我對JSoup一無所知,但是似乎如果您想使用講師的姓名,則可以使用以下方法進行訪問:
Element instructor = doc.select("div.chpstaff div p");
也許你已經解決了,但我已經努力了,所以無法抗拒提交
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?
這是一個簡短的示例:
// 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
它不是很難使用,但功能非常強大。
這是一個代碼
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屬性選擇所有標簽。 它將返回文本和標簽
。
Elements ele=doc.select("p");
' String text=ele.text();
System.out.println(text);
試試這個,我認為它會起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.