tkinter でHTMLファイルを選択し、そのファイルに含まれている<tilte>タグの中身を表示します。
実際に書いたコード
import tkinter as tk
from tkinter import filedialog
from bs4 import BeautifulSoup
def extract_title(path):
with open(path, "r", encoding="utf-8", errors="ignore") as f:
html = f.read()
soup = BeautifulSoup(html, "html.parser")
title_tag = soup.find("title")
if title_tag:
return title_tag.text.strip()
else:
return "タイトルタグが見つかりませんでした"
def select_file():
path = filedialog.askopenfilename(
filetypes=[("HTML Files", "*.html *.htm"), ("All Files", "*.*")]
)
if not path:
return
title = extract_title(path)
title_label.config(text=f"{title}")
root = tk.Tk()
root.title("HTMLファイルの <title>タグの中身を表示")
root.geometry("600x200")
text_label_0 = tk.Label(
root, text="<title>タグの中身を表示します。", font=("Meiryo", 12)
)
text_label_0.pack(pady=15)
btn = tk.Button(root, text="ファイルを選ぶ", command=select_file, font=("Meiryo", 12))
btn.pack(pady=20)
title_label = tk.Label(root, text="", font=("Meiryo", 12))
title_label.pack()
root.mainloop()
解説
ローカル HTML ファイルから <title>タグの内容のみを抽出して表示します。
Tkinter ベースの簡易 GUI ツール。 HTML パースには BeautifulSoup を使用。
依存ライブラリ
- tkinter(標準)
- bs4(BeautifulSoup)
pip install beautifulsoup4
ファイル構成
単一ファイルで構成。 GUI(Tkinter)と HTML 抽出ロジック(BeautifulSoup)を分離した最小構成。
主な関数
extract_title(path)
HTML ファイルを読み込み、BeautifulSoup で <title> タグを抽出して返します。
select_file()
ファイル選択ダイアログを開き、選択された HTML の <title> を抽出して GUI に反映。
GUI 構成
フォント指定の理由
font=("Meiryo", 12)
- Windows で日本語を確実に表示する
- Tkinter のデフォルトフォントは日本語が潰れることがある
- Meiryo は OS 標準で可読性が高い
pady を付けている理由
text_label_0.pack(pady=15)
- Tkinter の
pack()はデフォルトで 上詰め配置 - そのままだと UI が上に張り付き、視認性が悪い
padyで上下の余白を確保し、最低限のレイアウト調整を行うため
注意点
- BeautifulSoup が未インストールの場合、GUI 起動前に import エラーで停止する
<title>が存在しない HTML ではメッセージを返す仕様- レイアウトは
pack()のみで構成
実行結果
Auto Py to Exe で、Windowsのexeアプリ化して、実行。

テスト用のHTMLファイル
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>これはテスト用のタイトルです</title>
</head>
<body>
<h1>HTML タイトル抽出テスト</h1>
<p>このファイルは Python の BeautifulSoup と Tkinter の動作確認用です。</p>
</body>
</html>


人気ブログランキング ブログパーツ