簡體   English   中英

用於響應的HTML解析器-Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM