【Python】ローカルに置いてあるHTMLファイルのタイトルをエクセルにまとめる


ローカルに保存された特定フォルダ以下の(大量の)HTMLファイルのタイトル一覧をエクセルにまとめます
tqdmでなんとなく進捗が出ます

import pathlib
import glob
from tqdm import tqdm
import re
from bs4 import BeautifulSoup
import openpyxl

#フォルダを指定
p_temp = pathlib.Path('C:/hoge/')

#excelの準備
wb = openpyxl.Workbook()
sheet_title = wb.active
sheet_title.title = 'title'

#タイトルを取得(「titlelist」に格納)
titlelist = {}
filelist_t = p_temp.glob('*/*.html')
for i in tqdm(filelist_t):
    filename = str(i)
    with open(filename , encoding='utf-8') as f:
        html = f.read()
    soup = BeautifulSoup(html, "html.parser")
    title_tag = soup.find('title').text
    filelist = filename.split('\\')
    filenamecut = filelist[-1]
    titlelist[filenamecut] = title_tag

#A列にファイル名・B列に値を入れる
def toexcel(listname,sheetname):
    ii = 1
    for i in listname:
        f_name = 'A'+str(ii)
        f_value='B'+str(ii)
        ii +=1
        sheetname[f_name]=i
        sheetname[f_value]=listname[i]

toexcel(titlelist,sheet_title)

wb.save('titlelist.xlsx')
soup.find('title').text

で必要な要素のテキストのみ取得

    filelist = filename.split('\\')
    filenamecut = filelist[-1]
    titlelist[filenamecut] = title_tag

でファイル名のみの表示になっていますが、辞書型に格納するので階層ごとでまとめるとか適当に

結果
titlelist.xlsx