如何使用Python过滤html标签

时间:2016-11-29 11:04:53

标签: python html text filter

我有一篇文章的html文档。我有一些标签,我可以用来进行文本格式化。但我的文本编辑器使用了许多不必要的标签进行格式化。我想用Python编写一个程序来过滤这些标签。 这样一个程序的主要逻辑(结构,策略)是什么?我是Python的初学者,希望通过解决实际的实际任务来学习这门语言。但我需要一些概述来开始。

3 个答案:

答案 0 :(得分:0)

使用BeautifulSoup

from BeautifulSoup import BeautifulSoup
html_string = # the HTML code
parsed_html = BeautifulSoup(html_string)
print parsed_html.body.find('div', attrs = {attrs inside html code}).text

此处,div只是标记,您可以使用要过滤其文字的任何标记。

答案 1 :(得分:0)

您的要求不太明确,但您应该在python中使用现成的解析器,如BeautifulSoup

您可以找到tutorial here

答案 2 :(得分:0)

只是不知道会遗漏什么,但你可以使用正则表达式。

re.sub('<[^<]+?>', '', text)

以上功能将搜索...

否则你可以使用htmlparser

from HTMLParser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def handle_entityref(self, name):
        self.fed.append('&%s;' % name)
    def get_data(self):
        return ''.join(self.fed)

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