jsoup 能夠從包括字符串、URL地址以及本地文件來加載HTML 文檔,並生成Document對象實例。html
2.一個Element包含一個子節點集合,並擁有一個父Element。他們還提供了一個惟一的子元素過濾列表java
使用靜態方法Jsoup.parse(String html) 或 Jsoup.parse(String html, String baseUri)node
String html = "<html><head><title>First parse</title></head>" + "<body><p>Parsed HTML into a doc.</p></body></html>"; Document doc = Jsoup.parse(html);
說明:api
其解析器可以盡最大可能從你提供的HTML文檔來創見一個乾淨的解析結果,不管HTML的格式是否完整。安全
parse(String html, String baseUri) 這個方法可以將輸入的HTML解析爲一個新的文檔 (Document),參數 baseUri 是用來將相對 URL 轉成絕對URL,並指定從哪一個網站獲取文檔。如這個方法不適用,你可使用 parse(String html) 方法來解析成HTML字符串如上面的示例。cookie
只要解析的不是空字符串,就能返回一個結構合理的文檔,其中包含(至少) 一個head和一個body元素。post
一旦擁有了一個Document,你就可使用Document中適當的方法或它父類 Element 和 Node 中的方法來取得相關數據網站
假如你有一個HTML片段 (好比. 一個 div 包含一對 p 標籤; 一個不完整的HTML文檔) 想對它進行解析。這個HTML片段能夠是用戶提交的一條評論或在一個CMS頁面中編輯body部分。可使用Jsoup.parseBodyFragment(String html) 方法.url
String html = "<div><p>Lorem ipsum.</p>"; Document doc = Jsoup.parseBodyFragment(html); Element body = doc.body();
說明:spa
假如你可讓用戶輸入HTML內容,那麼要當心避免跨站腳本攻擊。利用基於Whitelist 的清除方法clean(...)來清除用戶輸入的惡意內容。
從一個網站獲取和解析一個HTML文檔,並查找其中的相關數據,可使用 Jsoup.connect(String url)方法。
Document doc = Jsoup.connect("http://example.com") .data("query", "Java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post();
說明:
這個方法只支持Web URLs (http 和 https 協議); 假如你須要從一個文件加載,可使用 parse(File in, String charsetName) 代替。
在本機硬盤上有一個HTML文件,須要對它進行解析從中抽取數據或進行修改。可使用靜態 Jsoup.parse(File in, String charsetName, String baseUri) 方法。
File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
說明:
parse(File in, String charsetName, String baseUri) 這個方法用來加載和解析一個HTML文件。如在加載文件的時候發生錯誤,將拋出IOException,應做適當處理。
baseUri參數用於解決文件中URLs是相對路徑的問題。若是不須要能夠傳入一個空的字符串。
另外還有一個方法parse(File in, String charsetName) 它使用文件的路徑作爲 baseUri。 這個方法適用於若是被解析文件位於網站的本地文件系統,且相關連接也指向該文件系統。