[英]HTML Parser for response - Java
我使用HttpClient訪問特定的網站,我得到的響應是HTML形式。 我應該使用HTML的解析器或方法,並從響應中獲取所需的信息。 注意:我在Java中使用HttpClient
使用jsoup 。
jsoup
是一個用於處理實際HTML的Java庫。 它提供了使用DOM,CSS和類似jquery的最好方法提取和處理數據的非常方便的API。
jsoup
實現WHATWG HTML5規范,並將HTML解析為與現代瀏覽器相同的DOM。
- 從URL,文件或字符串中抓取並解析HTML
- 使用DOM遍歷或CSS選擇器查找和提取數據
- 處理HTML元素,屬性和文本
- 根據安全的白名單清除用戶提交的內容,以防止XSS攻擊
- 輸出整潔的HTML
jsoup旨在處理野外發現的所有HTML; 從原始和驗證到無效的標簽湯; jsoup將創建一個明智的解析樹。
我會嘗試htmlcleaner 。
HTMLCleaner是Java庫,用於安全地解析和轉換Web上找到的任何HTML到格式良好的XML。 它被設計為小型,快速,靈活和獨立的。 HtmlCleaner可以在Java代碼中用作命令行工具或Ant任務。 解析的結果是輕量級的文檔對象模型,可以輕松地將其轉換為諸如DOM或JDom之類的標准,或者以各種方式(緊湊,精美打印等)序列化為XML輸出。
您可以將XPath
與htmlcleaner一起使用以獲取xml / html標記中的內容。
Xpath示例
jsoup和Java8的示例代碼:
// Imports:
...
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
...
// Execute the GET request:
...
HttpClient clientGet = HttpClientBuilder.create().build();
HttpGet get = new HttpGet(url);
HttpResponse res = clientGet.execute(get);
// Use jsoup to parse the html response:
// E.g. find all links with reference to myapp:
// <a href="myapp">HelloWorldApp</a>
Document doc = Jsoup.parse(IOUtils.toString(res.getEntity().getContent(), StandardCharsets.UTF_8));
Elements links = doc.select("a[href~=myapp]");
for (Element link : links)
String appName = link.html();
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.