在python中从字符串中删除html标记和实体

时间:2013-12-24 20:01:51

标签: python html

我从api.careerbuilder.com获取xml数据 特别是,字符串包含一些我愿意删除的html实体,没有效果!

我试过这样做:

import re
re.sub('\<.*?\>', '', job_title_text)

和这个

from html.parser import HTMLParser
class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

strip_tags(job_title_text)

最后这个

import lxml.html
(lxml.html.fromstring(job_title_text)).text_content()

但所有这些都是失败的。第二种方法删除了诸如“& amp”之类的html实体,但标签内的文本被保留,例如“pbrspan”。第三个完全破坏了一切,根本没有显示数据,而是

  

<绑定方法HtmlElement.text_content of<元素html在0x33717d8> >

最后,我怀疑,我写的正则表达式是完全错误的。 任何想法,如何处理?

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式

(\&安培; LT \;)*(\&安培; GT \)。?

答案 1 :(得分:0)