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

时间:2011-08-10 08:27:11

标签: python html-parsing

我正在使用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;">"""

我想将数据打印为空字符串(“”)。有什么帮助吗?..

1 个答案:

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