Date: 2005-03-23
Tags: python, programming

pythonでHTML解析

会社の同僚が

「Webサイトに定期的にアクセスして内容を解析して○○××を自動的に実行するプログラムを作りたい。 Perlで作ろうと思うんだけど……」

という話をしていたので、Pythonを勧めてみた。ついでにサンプルコードを作ってみた。

myparser.py:

from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
    def handle_data(self, data):
        data = data.strip("  \t\r\n")
        if data:
            print 'Data: "%s"' % data

    def handle_starttag(self, tag, attrs):
        pass
        #print 'TagStart: "%s"' % tag

    def handle_endtag(self, tag):
        pass
        #print 'TagEnd: "%s"' % tag

def main(url):
    import urllib
    data = urllib.urlopen( url )
    mp = MyHTMLParser()
    mp.feed( data.read() )


if __name__ == "__main__":
    import sys
    url = "http://python.jp/"
    if len( sys.argv ) > 1:
        url = sys.argv[1]

    main(url)

これを引数無しで実行すると、python.jpのページが取れてきて以下のように表示される:

Data: "Click"
Data: "here"
Data: "to get to the FrontPage."

超適当に作った割にはちゃんと動いたなぁ。