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.example">some text</a>'
、「some text」のみが印刷され、'<b>hello</b>'
「hello」などが印刷されます。これをどのように実行すればよいでしょうか。
ベストアンサー1
私はいつもこの関数を使って 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()