Python入門から応用までの学習サイト


HTML解析 (パーサ)

本項ではPythonで行うHTML解析 (パース)を解説します。取得したHTML文から様々な処理を行うことができます。

7行目で指定URLをオープンし、8行目で取得したHTML文を表示しています。

# -*- coding: utf-8 -*- 

import urllib2

url = "http://www.python-izm.com/"

htmldata = urllib2.urlopen(url)
print unicode(htmldata.read(), 'utf-8')

htmldata.close()


「build_opener」を使用します。8行目でユーザーエージェント情報を設定してからオープンしています。

# -*- coding: utf-8 -*- 

import urllib2

url = 'http://www.python-izm.com/'

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)')]

htmldata = opener.open(url)
print unicode(htmldata.read(), 'utf-8')

htmldata.close()
opener.close()


「HTMLParser」継承して処理を追加します。下記例では、本サイトのトップページからリンクされているURLの取得を行っています。

# -*- coding: utf-8 -*- 

import urllib2
from HTMLParser import HTMLParser

class TestParser(HTMLParser):

    def __init__(self):
        HTMLParser.__init__(self)

    def handle_starttag(self, tagname, attribute):
        if tagname.lower() == 'a':
            for i in attribute:
                if i[0].lower() == 'href':
                    print i[1]


url = 'http://www.python-izm.com/'

htmldata = urllib2.urlopen(url)

parser = TestParser()
parser.feed(htmldata.read())

parser.close()
htmldata.close()



Python
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

HTML解析の次はXML解析!

▶応用編:XML解析(パーサ)



確かな力が身につく
Python「超」入門




P  R