python TOPIX500の銘柄を公式のPDFから抽出する

www.jpx.co.jp
ここの構成銘柄別ウエイト一覧のcsvが2023/9末で更新止まってしまってる

2023/11/8現在
TOPIXニューインデックスシリーズ定期選定結果(2023年10月31日)にあるpdfにだけまとまってたのでそこからとってみた

import pdfplumber

# PDFファイルのパス
pdf_path = r'C:\Users\hogehoge\Desktop\mei2_12_size.pdf'


# 3. 構成銘柄一覧以下のテーブルからTOPIX500の銘柄のみを抽出
with pdfplumber.open(pdf_path) as pdf:
    # テーブルが始まるページを見つけるためのフラグ
    table_started = False
    # PDFの各ページを順に処理
    for page in pdf.pages:
        # ページ内のテキストを取得
        text = page.extract_text()
        # 特定のテキストがページに含まれているかチェックし、テーブルが始まるページを特定
        if '3. 構成銘柄一覧' in text:
            table_started = True
        # テーブルが始まった後、続くページからテーブルデータを抽出
        if table_started:
            # ページ内のテーブルを抽出
            tables = page.extract_tables()
            for table in tables:
                # テーブルの各行を処理
                for row in table:
                    # 最後の列が指定されたテキストのいずれかを含むかチェック
                    if row[-1] in ['TOPIX Core30', 'TOPIX Large70', 'TOPIX Mid400']:
                        print(row[1], row[2])  # ここでのrow[1]はコード、row[2]は銘柄名を指す