如何从HTML代码中打印表格中的空数据?

0 投票
1 回答
882 浏览
提问于 2025-04-16 23:16

我正在使用Python中的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>""")

结果 --> 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;">"""

我想把数据打印为空字符串("")。有没有人能帮帮我?..

1 个回答

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,这样你的代码就能按照你想要的方式运行了。

撰写回答