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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幾種去除HTML的方法

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-25 15:49 ? 次閱讀

在我平時(shí)的工作中,偶爾會(huì)用 Java 做一些解析HTML的工作。有的時(shí)候我需要?jiǎng)h除所有的HTML標(biāo)簽,只保留純文字內(nèi)容。這個(gè)問(wèn)題在做過(guò)一些爬蟲(chóng)工作的朋友來(lái)說(shuō)很簡(jiǎn)單。下面來(lái)說(shuō)說(shuō),我們平時(shí)使用到的集中解析的方法。

使用正則表達(dá)式

通過(guò)爬蟲(chóng)爬到的HTML內(nèi)容,從程序角度來(lái)講,就是一個(gè)字符串。我們可以對(duì)其按照純文本處理的方式來(lái)處理。

我們?cè)谧鑫谋咎幚淼臅r(shí)候,第一個(gè)想到的就是正則表達(dá)式。從一個(gè)字符串中刪除HTML,對(duì)于正則來(lái)說(shuō),還是比較簡(jiǎn)單的。畢竟還是有固定的格式,比如“<...>”。

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

我們?cè)谑褂谜齽t的時(shí)候,需要注意的是正則默認(rèn)是貪婪匹配。也就是說(shuō),正則表達(dá)式 <.*> 能夠匹配到更多的HTML內(nèi)容,而不是單個(gè)標(biāo)簽。

現(xiàn)在,讓我們測(cè)試一下它是否能從HTML源中刪除標(biāo)簽。

正則測(cè)試刪除標(biāo)簽1

在我們測(cè)試刪除HTML標(biāo)簽之前,首先讓我們創(chuàng)建一個(gè)HTML例子,例如example1.html。

< !DOCTYPE html >
< html >
< head >
    < title >這是標(biāo)題< /title >
< /head >
< body >
    < p >
        如果應(yīng)用程序X沒(méi)有啟動(dòng),可能的原因是< br/ >
        1. < a href="https://maven.apache.org" >Maven< /a >沒(méi)有安裝< br/ >
        2. 磁盤(pán)空間不足< br/ >
        3. 內(nèi)存不足
    < /p >
< /body >
< /html >

現(xiàn)在,讓我們寫(xiě)一個(gè)測(cè)試,用String.replaceAll()來(lái)刪除HTML標(biāo)簽。

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

如果我們運(yùn)行這個(gè)測(cè)試方法,我們會(huì)看到結(jié)果。

這是標(biāo)題



        如果應(yīng)用程序X沒(méi)有啟動(dòng),可能的原因是
        1.Maven沒(méi)有安裝
        2.磁盤(pán)空間不足
        3.沒(méi)有足夠的內(nèi)存

輸出結(jié)果保留了剝離后的HTML的空白處。我們?cè)谔幚硖崛〉奈谋緯r(shí),可以很容易地刪除或跳過(guò)這些空行或空白處。

正則測(cè)試刪除標(biāo)簽2

我們剛才已經(jīng)看到了,通過(guò)使用Regex來(lái)刪除HTML標(biāo)簽是非常簡(jiǎn)單。但是粗暴的使用這種方法會(huì)有很多問(wèn)題,我們不能預(yù)測(cè)最終的結(jié)果會(huì)是怎么樣的。

例如,一個(gè)HTML文檔可能有` 或標(biāo)簽,而我們可能不希望在結(jié)果中出現(xiàn)它們的內(nèi)容。

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

現(xiàn)在,讓我們看看另一個(gè)例子,比如example2.html

< !DOCTYPE HTML >
< html >
< head >
< title >這是標(biāo)題< /title >
< /head >
< script >
// some js function
< /script >
< body >
< p >
如果應(yīng)用程序X沒(méi)有啟動(dòng),可能的原因是< br/ >

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

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

現(xiàn)在我們有一個(gè)標(biāo)簽和 <字符在標(biāo)簽內(nèi)。

如果我們對(duì)example2.html使用同樣的方法,我們會(huì)得到如下內(nèi)容。

這是標(biāo)題
// some js function
如果應(yīng)用程序X沒(méi)有啟動(dòng),可能的原因是

Maven
沒(méi)有安裝
2. 磁盤(pán)空間不足 (
3. 內(nèi)存不足(

顯然,由于"<"字符的存在,我們丟失了一些文本。所以正則在處理文本的時(shí)候并不是萬(wàn)能的。我們可以使用一些 HTML 解析器來(lái)做這些比較復(fù)雜的場(chǎng)景。

使用Jsoup

Jsoup 是一個(gè)流行的HTML解析庫(kù),如果想要從一個(gè)HTML文檔中提取文本,我們可以簡(jiǎn)單地調(diào)用Jsoup.parse(htmlString).text()。

在項(xiàng)目中使用的時(shí)候,我們首先需要添加 jsoup 的依賴庫(kù),我們這里就通過(guò)maven的方式引入。

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

我們用 example2.html來(lái)測(cè)試一下。

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

如果我們讓這個(gè)方法運(yùn)行,它就會(huì)打印出來(lái)。

這是標(biāo)題 如果應(yīng)用程序X沒(méi)有啟動(dòng),可能的原因是 1.Maven沒(méi)有安裝 2.沒(méi)有足夠的(< 1G)磁盤(pán)空間 3.沒(méi)有足夠的(< 64MB)內(nèi)存

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

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

使用HTMLCleaner

HTMLCleaner 也是一個(gè)HTML解析庫(kù)。

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

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

我們可以設(shè)置[各種參數(shù)](http://htmlcleaner.sourceforge.net/parameters.php)來(lái)控制HTMLCleaner的解析行為。我們?cè)谶@里使用HTMLCleaner在解析example2.html時(shí)跳過(guò)元素。

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);

運(yùn)行一下,HTMLCleaner將產(chǎn)生這樣的輸出。

這是標(biāo)題

如果應(yīng)用程序X沒(méi)有啟動(dòng),可能的原因是:
1.Maven沒(méi)有安裝
2.沒(méi)有足夠的(< 1G)磁盤(pán)空間
3.內(nèi)存不足(< 64MB)

我們可以看到,元素中的內(nèi)容被忽略了,
標(biāo)簽轉(zhuǎn)換為提取的文本中的換行符。另外, HTMLCleaner 保留了HTML的空白內(nèi)容。

總結(jié)

在這篇文章中,我們學(xué)習(xí)了幾種去除HTML的方法,我們需要注意的是,正則在文本處理的過(guò)程中并不是萬(wàn)能的。

`

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2966

    瀏覽量

    104702
  • HTML
    +關(guān)注

    關(guān)注

    0

    文章

    278

    瀏覽量

    35211
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3265

    瀏覽量

    57678
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    小編科普一種去除傳輸線的方法

    本文介紹了一種去除傳輸線的方法。
    發(fā)表于 05-21 07:10

    基于HTML 標(biāo)記的信息隱藏方法

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

    HTML,HTML標(biāo)準(zhǔn)有哪些?

    HTML,HTML標(biāo)準(zhǔn)有哪些? HTML是一種用來(lái)網(wǎng)頁(yè)制作的簡(jiǎn)單標(biāo)記語(yǔ)言。但它并不是一種程序語(yǔ)言,它只是一種排版網(wǎng)頁(yè)中資料顯示的結(jié)構(gòu)語(yǔ)
    發(fā)表于 03-22 10:29 ?1203次閱讀

    動(dòng)態(tài)HTML,什么是動(dòng)態(tài)HTML

    動(dòng)態(tài)HTML,什么是動(dòng)態(tài)HTML 動(dòng)態(tài)超文本標(biāo)記語(yǔ)言 (DHTML) 大大降低的網(wǎng)絡(luò)和服務(wù)器負(fù)載動(dòng)態(tài) HTML 添加到 HTML 演示語(yǔ)言豐富、 更加吸引人用戶
    發(fā)表于 03-22 10:35 ?2922次閱讀

    HTML DOM prompt()方法使用

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

    JavaScript讓HTML靜態(tài)頁(yè)面?zhèn)髦档?b class='flag-5'>方法

    JavaScript讓HTML靜態(tài)頁(yè)面?zhèn)髦档?b class='flag-5'>方法有四種:1、JavaScript通過(guò)URL傳值。2、JavaScript通過(guò)Cookie傳值。3、JavaScript通過(guò)Window.open傳值。4、JavaScript通過(guò)HTML
    發(fā)表于 01-09 15:24 ?5914次閱讀
    JavaScript讓<b class='flag-5'>HTML</b>靜態(tài)頁(yè)面?zhèn)髦档?b class='flag-5'>方法</b>

    去除阻焊膜的四種方法

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

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

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

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

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

    python去除list中重復(fù)的數(shù)據(jù)

    Python是一個(gè)強(qiáng)大的編程語(yǔ)言,提供了許多解決問(wèn)題的方法和功能。其中一個(gè)常見(jiàn)的問(wèn)題是如何去除列表中的重復(fù)數(shù)據(jù)。在本文中,我們將詳細(xì)介紹Python中去除列表中重復(fù)數(shù)據(jù)的幾種方法,包括
    的頭像 發(fā)表于 11-21 15:49 ?1685次閱讀

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

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

    三防漆去除方法有哪些?

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

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

    去除晶圓鍵合邊緣缺陷的方法主要包括以下幾種: 一、化學(xué)氣相淀積與平坦化工藝 方法概述: 提供待鍵合的晶圓。 利用化學(xué)氣相淀積的方法,在晶圓
    的頭像 發(fā)表于 12-04 11:30 ?234次閱讀
    有什么<b class='flag-5'>方法</b>可以<b class='flag-5'>去除</b>晶圓鍵合邊緣缺陷?
    主站蜘蛛池模板: 国产精品久久自在自2021| 无套内谢大学生A片| 帝王被大臣们调教高肉| 香蕉AV福利精品导航| 久久99亚洲AV无码四区碰碰| 91福利在线观看| 色久久综合视频本道88| 国产人妻人伦精品无码.麻豆| 夜色女人香| 漂亮美女2018完整版| 国产亚洲精品精品国产亚洲综合| 伊人角狠狠狠狠| 日本不卡不码高清免费| 国产在线观看免费| OLDMAN老头456 TUBE| 小蝌蚪视频在线观看免费观看WWW| 久久亚洲高清观看| 国产99精品视频一区二区三区| 野花香HD免费高清版6高清版 | 亚洲高清免费在线观看| 男同志vdieos免费| 海角社区在线视频播放观看 | 99re久久热最新地址一| 性春院| 男女啪啪抽搐呻吟高潮动态图| 国产精品久久久久久免费字体| 66美女人体| 亚洲欧美日韩中字视频三区| 日本高清无吗| 久久足恋网| 国产伊人自拍| 国产白丝精品爽爽久久久久久蜜臀| 在线电台收听| 国产成人无码视频一区二区三区 | 国产人妻人伦精品98| A级毛片高清免费网站不卡| 野花日本免费完整版高清版动漫| 四虎国产精品免费观看视频| 男女啪啪抽搐呻吟高潮动态图| 久草色香蕉视频在线| 国产女合集第六部|