Python操作HTML標籤註釋

Python使用爬蟲獲取文本內容時,經常會發現獲取到的文本包含了HTML註釋,這時想要去除這些註釋,就需要一些方法,自己寫邏輯顯然比較麻煩而且效果不穩定,這裏主要用到了w3lib庫的html模塊

 

1.remove_tags()

移除指定標籤,不移除內部文本

from w3lib import html

doc = '''
    <div>
        <a>我是超鏈接</a>
        <h1>我是標題</h1>
    </div>

'''

result = html.remove_tags(doc)

print(result)
PS D:\workspace\github\python\python-demo\util\html> python .\tags.py


        我是超鏈接
        我是標題

可以看到所有的標籤都被移除了,只剩下標籤下的文本節點,包括了空白

可以使用參數which_ones來指定要移除的標籤

from w3lib import html

doc = '''
    <div>
        <a>我是超鏈接</a>
        <h1>我是標題</h1>
    </div>

'''

result = html.remove_tags(doc,which_ones=('div','a'))

print(result)
PS D:\workspace\github\python\python-demo\util\html> python .\remove_tags.py


        我是超鏈接
        <h1>我是標題</h1>



PS D:\workspace\github\python\python-demo\util\html>

看到指定了div、a標籤都被移除了

 

2.remove_tags_with_content()

移除標籤已經其內容

from w3lib import html

doc = '''
    <div>
        <a>我是超鏈接</a>
        <h1>我是標題</h1>
        我是div的內容
    </div>

'''

result = html.remove_tags_with_content(doc,which_ones=('h1','a'))

print(result)
PS D:\workspace\github\python\python-demo\util\html> python .\remove_tags_with_content.py

    <div>


        我是div的內容
    </div>

可以看到a、h1標籤的文本內容都被移除了,但是空白還在,而且測試中發現,如果直接移除外層標籤div,則內部標籤及其內容都會被完全移除

 

3.remove_comments()

移除HTML註釋

from w3lib import html

doc = '''
    <div>
    哈哈哈哈
    <!--我是網頁註釋-->
    </div>

'''

result = html.remove_comments(doc)

print(result)
PS D:\workspace\github\python\python-demo\util\html> python .\remove_comments.py

    <div>
    哈哈哈哈

    </div>

除了註釋被移除了,其他的都還在

 

4.remove_entities

移除所有HTML實體,實際上是進行替換,將HTML實體替換爲原本的字符

from w3lib import html

doc = '''
    大於號 &gt;
    小於號 &lt;
    且 &amp;
    引號 &quot;
    單引號 &apos; 
    分 &cent;
    磅 &pound;
    元 &yen;
    歐元 &euro;
    小節 &sect;
    版權 &copy;
    註冊商標 &reg;
    商標 &trade;
    乘號 &times;
    除號 &divide;
'''

result = html.remove_entities(doc)

print(result)
PS D:\workspace\github\python\python-demo\util\html> python .\remove_entities.py

    大於號 >
    小於號 <
    且 &
    引號 "
    單引號
    分 ¢
    磅 £
    元 ¥
    歐元 €
    小節 §
    版權 ©
    註冊商標 ®
    商標 ™
    乘號 ×
    除號 ÷

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章