色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

幾種去除HTML的方法

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-09-25 15:49 ? 次閱讀

在我平時的工作中,偶爾會用 Java 做一些解析HTML的工作。有的時候我需要刪除所有的HTML標簽,只保留純文字內容。這個問題在做過一些爬蟲工作的朋友來說很簡單。下面來說說,我們平時使用到的集中解析的方法。

使用正則表達式

通過爬蟲爬到的HTML內容,從程序角度來講,就是一個字符串。我們可以對其按照純文本處理的方式來處理。

我們在做文本處理的時候,第一個想到的就是正則表達式。從一個字符串中刪除HTML,對于正則來說,還是比較簡單的。畢竟還是有固定的格式,比如“<...>”。

我們常用的的正則就是 <[^>]> 或者 <.*?>

我們在使用正則的時候,需要注意的是正則默認是貪婪匹配。也就是說,正則表達式 <.*> 能夠匹配到更多的HTML內容,而不是單個標簽。

現在,讓我們測試一下它是否能從HTML源中刪除標簽。

正則測試刪除標簽1

在我們測試刪除HTML標簽之前,首先讓我們創建一個HTML例子,例如example1.html

< !DOCTYPE html >
< html >
< head >
    < title >這是標題< /title >
< /head >
< body >
    < p >
        如果應用程序X沒有啟動,可能的原因是< br/ >
        1. < a href="https://maven.apache.org" >Maven< /a >沒有安裝< br/ >
        2. 磁盤空間不足< br/ >
        3. 內存不足
    < /p >
< /body >
< /html >

現在,讓我們寫一個測試,用String.replaceAll()來刪除HTML標簽。

String html = ... // load example1.html
String result = html.replaceAll("< [^ >]` >", "");
System.out.println(result);

如果我們運行這個測試方法,我們會看到結果。

這是標題



        如果應用程序X沒有啟動,可能的原因是
        1.Maven沒有安裝
        2.磁盤空間不足
        3.沒有足夠的內存

輸出結果保留了剝離后的HTML的空白處。我們在處理提取的文本時,可以很容易地刪除或跳過這些空行或空白處。

正則測試刪除標簽2

我們剛才已經看到了,通過使用Regex來刪除HTML標簽是非常簡單。但是粗暴的使用這種方法會有很多問題,我們不能預測最終的結果會是怎么樣的。

例如,一個HTML文檔可能有` 或標簽,而我們可能不希望在結果中出現它們的內容。

此外,、甚至是標簽中的文本可能包含 <>字符。如果是這種情況,我們的正則方法可能會出錯。

現在,讓我們看看另一個例子,比如example2.html

< !DOCTYPE HTML >
< html >
< head >
< title >這是標題< /title >
< /head >
< script >
// some js function
< /script >
< body >
< p >
如果應用程序X沒有啟動,可能的原因是< br/ >

< a
id="link"
href="http://maven.apache.org/" >

Maven
< /a > 沒有安裝< br/ > 磁盤空間不足 (< 1G) < br/ >
內存不足(< 64MB)< br/ >
< /p >
< /body >
< /html >

現在我們有一個標簽和 <字符在標簽內。

如果我們對example2.html使用同樣的方法,我們會得到如下內容。

這是標題
// some js function
如果應用程序X沒有啟動,可能的原因是

Maven
沒有安裝
2. 磁盤空間不足 (
3. 內存不足(

顯然,由于"<"字符的存在,我們丟失了一些文本。所以正則在處理文本的時候并不是萬能的。我們可以使用一些 HTML 解析器來做這些比較復雜的場景。

使用Jsoup

Jsoup 是一個流行的HTML解析庫,如果想要從一個HTML文檔中提取文本,我們可以簡單地調用Jsoup.parse(htmlString).text()

在項目中使用的時候,我們首先需要添加 jsoup 的依賴庫,我們這里就通過maven的方式引入。

< dependency >
< groupId >org.jsoup< /groupId >
< artifactId >jsoup< /artifactId >
< version >1.14.3< /version >
< /dependency >

我們用 example2.html來測試一下。

String html = ... // load example2.html
System.out.println(Jsoup.parse(html).text());

如果我們讓這個方法運行,它就會打印出來。

這是標題 如果應用程序X沒有啟動,可能的原因是 1.Maven沒有安裝 2.沒有足夠的(< 1G)磁盤空間 3.沒有足夠的(< 64MB)內存

從輸出結果可知,Jsoup已經成功地從HTML文檔中提取了文本。另外,元素中的文本已經被忽略了。

此外,默認情況下,Jsoup會刪除所有的文本格式和空白處,比如換行符。

使用HTMLCleaner

HTMLCleaner 也是一個HTML解析庫。

首先,我們需要在pom.xml中添加HTMLCleaner 依賴。

< dependency >
< groupId >net.sourceforge.htmlcleaner< /groupId >
< artifactId >htmlcleaner< /artifactId >
< version >2.25< /version >
< /dependency >

我們可以設置[各種參數](http://htmlcleaner.sourceforge.net/parameters.php)來控制HTMLCleaner的解析行為。我們在這里使用HTMLCleaner在解析example2.html時跳過元素。

String html = ... // load example2.html
CleanerProperties props = new CleanerProperties();
props.setPruneTags("script");
String result = new HtmlCleaner(props).clean(html).getText().toString();
System.out.println(result);

運行一下,HTMLCleaner將產生這樣的輸出。

這是標題

如果應用程序X沒有啟動,可能的原因是:
1.Maven沒有安裝
2.沒有足夠的(< 1G)磁盤空間
3.內存不足(< 64MB)

我們可以看到,元素中的內容被忽略了,
標簽轉換為提取的文本中的換行符。另外, HTMLCleaner 保留了HTML的空白內容。

總結

在這篇文章中,我們學習了幾種去除HTML的方法,我們需要注意的是,正則在文本處理的過程中并不是萬能的。

`

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2973

    瀏覽量

    104959
  • HTML
    +關注

    關注

    0

    文章

    278

    瀏覽量

    36136
  • 應用程序
    +關注

    關注

    38

    文章

    3292

    瀏覽量

    57829
收藏 人收藏

    評論

    相關推薦

    蝕刻后殘留物和光刻膠的去除方法

    (BEOL)蝕刻中,在不去除低k材料的情況下去除抗蝕劑和殘留物的選擇性是非常具有挑戰性的。概述了現狀、問題和一些新的方法
    的頭像 發表于 07-04 17:04 ?9554次閱讀
    蝕刻后殘留物和光刻膠的<b class='flag-5'>去除</b><b class='flag-5'>方法</b>

    三防漆固化后板返修的去除方法

    三防漆固化后的線路板還有可能會返修,這就需要把漆膜去除掉,然后才能更換元件。這里敏通給大家列舉幾種比較常見的去除方法。一,加熱法,不到萬不得已不建議采用此
    發表于 05-28 10:44

    基于HTML 標記的信息隱藏方法

    本文通過仔細分析 HTML 中標記的各種性質,提出了幾種新的基于標記的隱藏信息的方法。這些方法的隱蔽性較好;綜合運用這些方法可以獲得較大的信
    發表于 08-24 11:18 ?21次下載

    HTML,HTML標準有哪些?

    HTML,HTML標準有哪些? HTML是一種用來網頁制作的簡單標記語言。但它并不是一種程序語言,它只是一種排版網頁中資料顯示的結構語
    發表于 03-22 10:29 ?1212次閱讀

    動態HTML,什么是動態HTML

    動態HTML,什么是動態HTML 動態超文本標記語言 (DHTML) 大大降低的網絡和服務器負載動態 HTML 添加到 HTML 演示語言豐富、 更加吸引人用戶
    發表于 03-22 10:35 ?2932次閱讀

    HTML DOM prompt()方法使用

    HTML DOM Window 對象 定義和用法 prompt() 方法用于顯示可提示用戶進行輸入的對話框。 語法prompt(text,defaultText)參數描述 text 可選。要在
    發表于 11-28 15:06 ?4689次閱讀
    <b class='flag-5'>HTML</b> DOM prompt()<b class='flag-5'>方法</b>使用

    JavaScript讓HTML靜態頁面傳值的方法

    JavaScript讓HTML靜態頁面傳值的方法有四種:1、JavaScript通過URL傳值。2、JavaScript通過Cookie傳值。3、JavaScript通過Window.open傳值。4、JavaScript通過HTML
    發表于 01-09 15:24 ?5934次閱讀
    JavaScript讓<b class='flag-5'>HTML</b>靜態頁面傳值的<b class='flag-5'>方法</b>

    去除阻焊膜的四種方法

    有幾個因素對于決定采用何種方式來去除涂層是很有幫助的。是什么類型的阻焊膜?阻焊膜在電路板表面的什么位置?需去除的阻焊膜面積有多大?電路板是組裝好的還是裸板?在確定最適合的去除方法之前,
    發表于 06-05 11:12 ?6041次閱讀

    單幅航攝像片中的薄云去除方法綜述

    單幅航攝像片中的薄云去除方法綜述
    發表于 06-25 14:10 ?8次下載

    一種澆口蝕刻后的感光膜去除方法

    本發明涉及一種感光膜去除方法,通過使半導體制造工藝中澆口蝕刻后生成的聚合物去除順暢,可以簡化后處理序列,從而縮短前工藝處理時間,上述感光膜去除方法
    發表于 04-12 16:30 ?548次閱讀
    一種澆口蝕刻后的感光膜<b class='flag-5'>去除</b><b class='flag-5'>方法</b>

    python去除list中重復的數據

    Python是一個強大的編程語言,提供了許多解決問題的方法和功能。其中一個常見的問題是如何去除列表中的重復數據。在本文中,我們將詳細介紹Python中去除列表中重復數據的幾種方法,包括
    的頭像 發表于 11-21 15:49 ?1732次閱讀

    HMDS與BARC一定要除去嗎?有哪幾種去除的方式?

    HMDS,BARC是光刻工序中比較常用的化學品,但是它們并不能用顯影液除去,根據是什么?它們一定要除去嗎?有哪幾種去除的方式?
    的頭像 發表于 12-22 10:29 ?2511次閱讀
    HMDS與BARC一定要除去嗎?有哪<b class='flag-5'>幾種</b><b class='flag-5'>去除</b>的方式?

    三防漆去除方法有哪些?

    一站式PCBA智造廠家今天為大家講講PCB加工電路板三防漆如何清除?電路板三防漆清除方法。 電路板上的三防漆清除方法主要有以下幾種: 物理去除法: 機械清洗:使用機械設備或手動工具,如
    的頭像 發表于 05-03 09:17 ?1211次閱讀

    有什么方法可以去除晶圓鍵合邊緣缺陷?

    去除晶圓鍵合邊緣缺陷的方法主要包括以下幾種: 一、化學氣相淀積與平坦化工藝 方法概述: 提供待鍵合的晶圓。 利用化學氣相淀積的方法,在晶圓
    的頭像 發表于 12-04 11:30 ?319次閱讀
    有什么<b class='flag-5'>方法</b>可以<b class='flag-5'>去除</b>晶圓鍵合邊緣缺陷?

    芯片濕法刻蝕殘留物去除方法

    大家知道芯片是一個要求極其嚴格的東西,為此我們生產中想盡辦法想要讓它減少污染,更加徹底去除污染物。那么,今天來說說,大家知道芯片濕法刻蝕殘留物到底用什么方法去除的呢? 芯片濕法刻蝕殘留物去除
    的頭像 發表于 12-26 11:55 ?271次閱讀
    主站蜘蛛池模板: 131美女爱做视频午夜剧场| 男女肉大捧进出全过程免费| 国产激情视频在线| 久久久无码精品亚洲日韩按摩| 暖暖直播免费观看韩国| 色老板美国在线观看| 一个人免费视频在线观看| 啊…嗯啊好深男男高h文总受 | 欧洲最大无人区免费高清完整版| 视频专区亚洲欧美日韩| 97精品视频| 精品人伦一区二区三区潘金莲 | 狠狠色狠狠色综合系列| 日本人六九视频| 穿白丝袜边走边尿白丝袜| 精品极品三大极久久久久| 日韩高清在线亚洲专区| 13一18TV处流血TV| 后式大肥臀国产在线| 射死你天天日| av无码在线日本天堂| 久久视频在线视频| 亚洲乱码国产一区三区| 国产精品久久精品视| 全是肉的高h短篇列车| 87影院午夜福利| 久久久无码精品亚洲日韩按摩| 亚洲精品第一页| 国产精品亚洲国产三区| 三级全黄的视频| 成人在线观看免费视频| 欧式午夜理伦三级在线观看| 最新国产在线视频在线| 久久久久久久国产精品视频| 亚洲青青青网伊人精品| 国产专区青青草原亚洲| 亚洲精品123区在线观看| 国产午夜亚洲精品一区| 无码任你躁久久久久久老妇双奶| 俄罗斯女人Z0ZOZO| 少男同志freedeos|