这是html代码:
<!DOCTYPE html>
<html>
<title>Instructor's Page</title>
<body>
<h1>Instructor's Page</h1>
<div class="check1"> <div id="check2">
<span id="check3" class="check4"> <strong class="check5"><link href="http://schema.org/t"/>Instructor-1 name</strong>
</span>
</div>
<div class="check1"> <div id="check2">
<span id="check3" class="check4"> <strong class="check6">Instructor-2 name</strong>
</span>
</body>
</html>
我是Jsoup
的新手。如何从给定的html页面中提取Instructor's name
?
目前,我只知道打印标题。
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class crawl {
public static void main(String[] args) {
Document doc1;
try {
File input = new File("t.html");
doc1 = Jsoup.parse(input, "UTF-8");
// get page title
String title1 = doc1.title();
System.out.println("title : " + title1);
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}
使用select
-方法在HTML页面中选择所需的元素。它将模式作为要选择的对象的参数,例如具有特定id或类的特定标记。
//Creates a collection of Element objects for all span tags
Elements names = doc.select("span");
//Returns a collection of the first cells of each row
Elements names = doc.select("td:eq(0)");
使用此选项可以选择您要查找的内容。在web浏览器中使用一个工具来帮助您识别HTML源中的标记可能会很有帮助。
关于您最初关于如何选择讲师姓名的问题,请参阅下文。
如果HTML的结构总是相同的,并且您确信讲师的名字将在span
标签中,那么您可以简单地解析中的文本
Elements names = doc.select("span");
for (Element e : names) {
System.out.println("Name is: " + e.text());
}
将打印出
Name is: Instructor-1 name
Name is: Instructor-2 name