正则表达式 - python中,如何删除html页面中的文字,只留下html标签?
大家讲道理
大家讲道理 2017-04-17 14:23:36
[Python讨论组]

由于想比较同一个网页中某个标签下的子节点的的相似度
操作对象只是html标签,所以想先删除html中标签之外的文字,以排除干扰。
请问,有什么比较高效快捷的解决方法吗?
注:目前只想到使用正则来解决

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
ringa_lee

HTMLParser 够用了

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import HTMLParser

def get_tags(html, l=None):

    if l is None:
        l = []

    class MyHTMLParser(HTMLParser.HTMLParser):

        def handle_starttag(self, tag, attrs):
            l.append(tag)
        def handle_endtag(self, tag):
            pass

    parser = MyHTMLParser()
    parser.feed(html)
    return l # 或者 return ' '.join(l) 直接比较字符串

if __name__ == '__main__':
    html = """


<p id="footer">
        <p class="container">
            <ul>
                <li><a>链接一</a></li>
                <li><a>链接二</a></li>
            </ul>
            <p>文字段落</p>
            <img src="usr/img.png"/>
        </p>
    </p>

"""
    print get_tags(html) # 输出的是开始标签 ['p', 'p', 'ul', 'li', 'a', 'li', 'a', 'p', 'img']
ringa_lee

http://snipplr.com/view/50835/stripremove-html-tags-django-utils/

# import the strip_tags
from django.utils.html import strip_tags

# simple string with html inside.
html = '<p>paragraph</p>'
print html # will produce: <p>paragraph</p>

stripped = strip_tags(html)
print stripped # will produce: paragraph
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号