2011-05-24 47 views
14

因此,這裏面臨的挑戰......我需要從隨機網頁中創建乾淨的HTML。我的目標是閱讀一個頁面並將其傳遞給一個圖書館,這個圖書館又可以讓我回到完美的格式化HTML。用於清理HTML的Java庫就像瀏覽器一樣

聽起來不那麼難,對不對?畢竟,市場上的每一款瀏覽器都能有效地應對格式錯誤的HTML的挑戰,並將其轉化爲幾乎每一頁加載的渲染功能。每個人都有自己的清理內容的稍微特別的算法(就像...),但他們往往做的非常好,能捕捉到我喜歡作爲作者意圖的內容。那麼,爲什麼我不能爲這個任務找到一個好的java庫?

有一點要提到的是,我並不想把XML解析爲XML。我發現諸如NekoHTML,TagSoup,HtmlCleaner和JTidy(僅舉幾例)等庫更專注於解決將HTML轉換爲有效的XML的問題,並且在這個過程中,他們忽略了這些糟糕的特性,格式化的文件應該重新構建。由於討厭的HTML,他們經常無法捕捉作者的意圖,並且吐出與原始來源完全不同的文檔。而對於這個項目來說,這兩個文件的渲染是相當重要的。

我很喜歡傑里科的HTML,但它似乎不是這份工作的理想人選......至少在我沒有付出很多努力的情況下。此外,本地依賴是一個不行,所以mozilla解析器已經不存在了。

任何人都可以幫助我尋找完美的HTML解析器嗎?提前致謝!

+1

給我定義格式不正確的HTML ...你一般是指適當的縮進還是隻是格式不正確的HTML。後者的範圍要大得多。 – 2011-05-24 15:48:12

+0

我們肯定在說後者。對於這個項目,我必須拉入一個網頁,應用一些轉換,然後將結果顯示給用戶。如果格式/佈局與預處理的HTML格式明顯不同,那我就麻煩了。 – stevevls 2011-05-24 15:52:02

回答

6

JSoup我想說

請參見

+0

感謝您提供其他問題的鏈接。我以前見過那個,並追查了一些鏈接,儘管我留下的結論是我的問題稍有不同。我現在正在評估JSoup,它看起來非常有前途。我之前已經跳過了B/C這個名字和TagSoup非常接近,我認爲它們是一樣的。 ;) – stevevls 2011-05-24 16:50:30

+2

經過一天的使用,我可以正式說這個圖書館是岩石。非常感謝! – stevevls 2011-05-25 16:00:53

+0

是的,它真的很好:)你歡迎 – 2011-05-25 16:02:08

0

TagSoup

+1

謝謝,但不幸的是,圖書館陷入「讓我們把HTML變成XML」的陣營。我已經對它進行了評估並拋出了它,它給了我HTML的呈現方式不同於源代碼。 – stevevls 2011-05-24 18:20:56

1

我以前用過HTML Tidy

+0

呵呵......看起來他們在2009年第一次發佈了一個版本,這是8年來的第一次。過去我也用過Tidy,但即使那樣我也不知所措。也許大約五年前,我開始了一個項目(這次我正在解析HTML - > XML),最後使用了NekoHTML(現在也已經死了)。 – stevevls 2011-05-24 18:26:04

相關問題