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

    大于号 >
    小于号 <
    且 &
    引号 "
    单引号
    分 ¢
    磅 £
    元 ¥
    欧元 €
    小节 §
    版权 ©
    注册商标 ®
    商标 ™
    乘号 ×
    除号 ÷

 

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