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の使い方について、基礎文法から応用例まで入門者向けに解説します。
コメント