上次我們提到Jsoup的解析對象分為
現就一項項的作個簡單說明,有需要進一步了解的可以查官網。
https://jsoup.org/
String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
當我們宣告Document doc = Jsoup.parse(html);時,表示我們將一段字串透過Jsoup轉成Document類型來操作。
透過這個方式可以取得至少一個head跟body元素,由Document 的方法作後續處理。
String html = "<div><p>Lorem ipsum.</p>";
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();
我們可以看到字串內,關於<div>
的規範不完整。
透過Jsoup.parseBodyFragment我們可以用Jsoup自動補完缺少的部分,並指定給Body使用。
透過這個解析方式將一些不美觀或不完整的HTML元素都納進body元素處理。
Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();
這邊Jsoup提供了設定網址來作讀取資料來源的用法。
不過有時候會因為內容太大或網址伺服器回應太慢而失敗。
這時候可以透過設定參數來解除原本JSOUP預設容量限制及等待時間
Document doc = Jsoup.connect(m_string).timeout(60000).maxBodySize(0).get()
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/";);
註:
當本機有一個HTML檔案要做解析時可使用Jsoup.parse(File in, String charsetName, String baseUri) 方法
String baseUri是作為相對路徑的辨別,也就是說當路徑缺少前方主機的位置時,可以藉由String baseUri作補全。