2
<tr>
  <td style="color: #0000FF;text-align: center"><p>Sam<br/>John<br/></p></td>
</tr>

Python HTMLParser モジュールを使用して、以下の HTML スニペットから Sam と John の値を抽出していますが、handle_data関数は Sam のみをキャプチャし、John はキャプチャしていません。

どうすればサムとジョンの両方を手に入れることができますか?

4

1 に答える 1

4

True/値を持つインスタンスレベルの変数を持つことができFalseます。タグが開始された場合、タグが終了したTrue場合に設定します。値が の場合、メソッドでデータを取得します。pFalsepTruehandle_data()

from HTMLParser import HTMLParser

data = """
<tr>
  <td style="color: #0000FF;text-align: center"><p>Sam<br/>John<br/></p></td>
</tr>
"""

class Parser(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)
        self.recording = False

    def handle_starttag(self, tag, attrs):
        if tag == 'p':
            self.recording = True

    def handle_endtag(self, tag):
        if tag == 'p':
            self.recording = False

    def handle_data(self, data):
        if self.recording:
            print data

parser = Parser()
parser.feed(data)

版画:

Sam
John
于 2014-08-22T13:32:13.460 に答える