在Python中从字符串中剥离HTML

from mechanize import Browser

br = Browser()

br.open('http://somewebpage')

html = br.response().readlines()

for line in html:

print line

当在HTML文件中打印一行时,我试图找到一种仅显示每个HTML元素的内容而不显示格式本身的方法。如果找到'<a

href="whatever.com">some text</a>',它将仅打印“某些文本”,'<b>hello</b>'打印“

hello”,等等。如何去做呢?

回答:

我一直使用此函数来剥离HTML标记,因为它仅需要Python stdlib:

对于Python 3:

from io import StringIO

from html.parser import HTMLParser

class MLStripper(HTMLParser):

def __init__(self):

super().__init__()

self.reset()

self.strict = False

self.convert_charrefs= True

self.text = StringIO()

def handle_data(self, d):

self.text.write(d)

def get_data(self):

return self.text.getvalue()

def strip_tags(html):

s = MLStripper()

s.feed(html)

return s.get_data()

对于Python 2:

from HTMLParser import HTMLParser

from StringIO import StringIO

class MLStripper(HTMLParser):

def __init__(self):

self.reset()

self.text = StringIO()

def handle_data(self, d):

self.text.write(d)

def get_data(self):

return self.text.getvalue()

def strip_tags(html):

s = MLStripper()

s.feed(html)

return s.get_data()

以上是 在Python中从字符串中剥离HTML 的全部内容, 来源链接: utcz.com/qa/397610.html

回到顶部