我正在使用python中的HTMLParser模块通过HTMLParser解析HTML页面来打印表中的数据。我无法在表格中打印空白字段。
以下是我正在使用的代码:
class MyParser(HTMLParser):
def __init__(self, data ):
HTMLParser.__init__(self)
self.feed(data)
def handle_data(self, data):
print "result -->", data
m = MyParser("""<p>105</p><p></p>""")
结果 - &gt; 105
我可以在第一个标记<p>105</p>
之间打印数据。我想打印第二个标记<p></p>
之间的空数据。我该怎么做?
HTMLPAGE = """<p>105</p></td><td style="width:50px; word-wrap: break-word;"><p style="width: 8em; padding-left: 0px; padding-right: 0px; margin: 0pt;"></p></td><td style="width:50px; word-wrap: break-word;">"""
我想将数据打印为空字符串(“”)。有什么帮助吗?..
答案 0 :(得分:0)
好吧,如果你确实需要这个,请尝试使用handle_endtag
:
class MyParser(HTMLParser):
def __init__(self, data ):
HTMLParser.__init__(self)
self.data = ""
self.feed(data)
def handle_data(self, data):
self.data = data
def handle_endtag(self, tag, attrs):
print "result -->", self.data
self.data = ""
m = MyParser("""<p>105</p><p></p>""")
这样每次标记结束时,您都会打印出里面的数据。但是,这会将<p><p></p></p>
视为两次“空数据” - 在每个标记结束之前。如果这接近(但不完全)你需要的东西,请尝试花些时间同时使用handle_starttag
,这样你的代码就可以按照你想要的方式运行。