Maison > développement back-end > tutoriel php > Python 实现类似PHP的strip_tags函数功能,并且可以自定义设置保留标签

Python 实现类似PHP的strip_tags函数功能,并且可以自定义设置保留标签

WBOY
Libérer: 2016-06-23 13:48:26
original
1143 Les gens l'ont consulté

最近在研究 Python ,发现用的还是很不习惯,很多PHP里面很简单的功能在Python 里面都得找半天,而且很多功能都得自己实现。

今天做个采集,需要过滤内容中的标签,搞了一下午,貌似终于搞出来了,测试了下达到了预想的效果,废话不多说贴上代码吧

from html.parser import HTMLParserdef strip_tags(html, save=None):    result = []    start = []    data = []    def starttag(tag, attrs):        if tag not in save:            return        start.append(tag)        if attrs:            j = 0            for attr in attrs:                attrs[j] = attr[0] + '="' + attr[1] + '"'                j += 1            attrs = ' ' + (' '.join(attrs))        else:            attrs = ''        result.append('')    def endtag(tag):        if start and tag == start[len(start) - 1]:            result.append('' + tag + '>')    parser = HTMLParser()    parser.handle_data = result.append    if save:        parser.handle_starttag = starttag        parser.handle_endtag = endtag    parser.feed(html)    parser.close()    for i in range(0, len(result)):        tmp = result[i].rstrip('\n')        tmp = tmp.lstrip('\n')        if tmp:            data.append(tmp)    return ''.join(data)
Copier après la connexion

使用方法:

    result = strip_tags("""发生的杀毒<a target="_blank" title="足球比分直播" href="http://live.500.com/">足球比分直播</a><a target="_blank" title="竞彩足球" href="http://zx.500.com/jczq/">竞彩足球</a><a target="_blank" title="篮球竞彩" href="http://zx.500.com/jclq/">篮球竞彩</a>				<img src="dd" alt=">">						<p>  打蛇打七寸,北单7串1。由于<a target="_blank" title="北京单场" href="http://zx.500.com/zqdc/">北京单场</a>SP值计算规则与竞彩不同,4串1及以下投注购买竞彩更划算,而7串1以上的投注很可能交税,反而不划算。根据计算,北京单场4串1到7串1之间的投注最划算。</p>""", ['p', 'img'])    print(result)
Copier après la connexion

输出结果:

发生的杀毒足球比分直播竞彩足球篮球竞彩				<img src="dd" alt=">">						<p>  打蛇打七寸,北单7串1。由于北京单场SP值计算规则与竞彩不同,4串1及以下投注购买竞彩更划算,而7串1以上的投注很可能交税,反而不划算。根据计算,北京单场4串1到7串1之间的投注最划算。</p>
Copier après la connexion

仅保留

标签





Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal