1

クラス拡張SGMLParserを作成します。

class URLLister(SGMLParser):

    def __init__(self):
        SGMLParser.__init__(self)

    def start_title(self, attrs):
        pass

    def handle_data(self, data):
        print data

非常に単純なコード。IMOstart_title<title>、タグに遭遇handle_dataしたときに呼び出され、通常のテキストに遭遇したときに呼び出されました。今、私は<title>との間のテキストを抽出したい</title>、例えば

<html><head><title>Webpage title</title></head><body>Simple text</body></html>

Webpage titlebetween<title>タグを印刷したいのですが、タグを使用すると、とhandle_dataを含むすべての単純なテキストが出力されます。タグの間にテキストを出力する方法は?Webpage titleSimple text<title>

4

1 に答える 1

0

handle_data実際には、次のようにハードコードされたチェックインを追加することができます。

def handle_data(self, data):
    tag = self.get_starttag_text().replace("<","").replace(">","")
    tag_words = tag.split(" ")
    if len(tag_words) > 0 and tag_words[0].endswith("title"):
        print data

これがあなたが正確に望んでいたものであるかどうかはわかりませんが、もっとエレガントな答えがあると確信しています。

于 2012-02-26T04:58:16.620 に答える