Python - triviální HTML parser

Z GeoWikiCZ
Verze z 30. 5. 2007, 13:49, kterou vytvořil Cepek (diskuse | příspěvky) (triviální HTML parser)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Program definuje triviální uživatelskou třídu Parser, načte ze zadaného URL HTML stránku a vypíše na standardní výstup preformátovaný text dané stránky, tj. text uzavřený ve značce/značkách <pre>

#!/usr/bin/python    coding=utf-8

import sgmllib

class Parser(sgmllib.SGMLParser):
    "Triviální HTML parser, vypiše obsah značky/značek <pre>"
    # podle http://www.boddie.org.uk/python/HTML.html

    def parse(self, s):
        "Zpracuje zadaný řetězec 's'."
        self.feed(s)
        self.close()

    def __init__(self, verbose=0):
        "Inicializace objektu, 'verbose' se předává rodičovské třídě"

        sgmllib.SGMLParser.__init__(self, verbose)
        self.inside_pre = 0

    def handle_data(self, data):
        "Tisk textu ve značce <pre>"

        if self.inside_pre:
            print data,

    def start_pre(self, data):
        "Zpracovaní otevirací značky <pre>"

        self.inside_pre = 1

    def end_pre(self):
        "Zpracovaní koncové značky 

"

       self.inside_pre = 0


import urllib

usock = urllib.urlopen("http://gama.fsv.cvut.cz/wiki/index.php?title=Python_-_trivi%C3%A1ln%C3%AD_HTML_parser")

page = usock.read() usock.close()

parser = Parser() parser.parse(page)