Python3の標準ライブラリ「HtmlParser」を用いて、HTML解析(パース)する方法とソースコードについて紹介します。
HTML解析(パース)
HTML解析(パース)とは、HTML文の中身を解析して必要な情報を取り出すことです。
Python3では、標準ライブラリ「HtmlParser」を用いて行うことができます。
インターネット上やローカルのHTMLファイルにアクセスするには、標準ライブラリ「urllib」を使います。
ソースコード(Python3)
サンプルプログラムのソースコードです。
# -*- coding: utf-8
import urllib.request
import html.parser as hp
# HTMLParserを継承したクラスを定義
class Parser(hp.HTMLParser):
def handle_starttag(self, tag, attrs):
print("開始タグ :", tag, attrs)
def handle_endtag(self, tag):
print("終了タグ :", tag)
def handle_data(self, data):
print("データ:", data)
def handle_comment(self, comment):
print("コメント:", comment)
# 取得先URL
url = "https://python.joho.info/"
# HTMLファイルを開く
data = urllib.request.urlopen(url)
# HTMLの取得
html = data.read()
html = html.decode('utf-8')
# HTML解析(タイトルタグの値取得)
parser = Parser()
parser.feed(html)
# 終了処理
parser.close()
data.close()
– | 処理手順と内容 |
---|---|
① | 開始タグがあればhandle_starttagメソッド呼び出し |
② | 終了タグがあればandle_endtagメソッド呼び出し |
③ | タグ内にデータがあればhandle_dataメソッドで処理 |
④ | タグ内にデータがあればhandle_commentメソッドで処理 |
⑤ | ①~④を繰り返し行います |
サンプルプログラムの実行結果は下記の通りです。(長いので一部抜粋)
このように、HTML内の各タグの情報を切り分けて取得できます。
開始タグ : li [('id', 'menu-item-181'), ('class', 'menu-item menu-item-type-taxonomy menu-item-object-category menu-item-181')]
開始タグ : a [('href', 'https://python.joho.info/category/robotics/')]
データ: ロボット工学
終了タグ : a
終了タグ : li

【Python/HtmlParser】HTML解析(パース)
Python3の標準ライブラリ「HtmlParser」を用いて、HTML解析(パース)する方法とソースコードについて紹介します。

【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。
コメント