Как распечатать пустые данные, присутствующие в таблице, из ее HTML-кода? - PullRequest
0 голосов
/ 10 августа 2011

Я использую модуль HTMLParser, присутствующий в python, чтобы напечатать данные в таблице, анализируя HTML-страницу через HTMLParser. Я не могу напечатать пустое поле в таблице.

Вот код, который я использую:

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 голосов
/ 10 августа 2011

Ну, если вам это действительно нужно, попробуйте использовать 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, чтобы ваш код мог вести себя так, как вы этого хотите.

...