report-download について
A株と香港株の財務報告書 PDF を探してダウンロードするワークフロー用スキルです。銘柄コード、年度、報告書の種類で検索し、候補を絞ってローカルに保存します。
主な機能
- 01市場の判定と銘柄コードの整形
- 02報告書の種類と年度による検索
- 03指定ソースからの PDF リンク抽出
- 04要約など対象外ファイルの除外
- 05PDF のダウンロードとローカルパスの返却
活用シーン
- 01銘柄の年次報告書の取得
- 02A株の四半期・中間報告書の検索
- 03香港株の報告書のローカル保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ terancejiang/ skill_financial_report_download --skill report-downloadインストール後、Claude Code で/report-downloadを入力して読み込まれたか確認します。
同梱ファイルscripts/download_report.py
詳細
財務報告書 PDF ダウンローダー
stockn.xueqiu.com(雪球)からA株および香港株の財務報告書 PDF をダウンロードします。失敗した場合は、notice.10jqka.com.cn(同花顺)を代替ソースとして使用します。どちらのソースも、安定した自動ダウンロードに対応しています。
ワークフロー
Input (stock code, year, report type)
→ Step 0: Parse & detect market
→ Step 1: WebSearch for PDF on stockn.xueqiu.com
→ Step 2: Extract matching PDF URLs
→ Step 3: Identify correct report (filter out summaries, audit reports, etc.)
→ Step 4: Python script downloads PDF to local disk
→ Output: local PDF file path
ステップ 0:入力を解析する
ユーザーの入力を次の3つの部分に解析します。
- stock_code(必須):銘柄コード
- year(任意):指定がない場合は入手可能な最新の年
- report_type(任意):指定がない場合は年報
市場の判定
| パターン | 市場 | 形式 | 例 |
|---|---|---|---|
6で始まる6桁 | 上海A株 | SHを前に付ける | 600887 → SH600887 |
0または3で始まる6桁 | 深圳A株 | SZを前に付ける | 300750 → SZ300750 |
| 1~5桁 | 香港 | 5桁になるよう先頭にゼロを付ける | 700 → 00700 |
すでにSH/SZの接頭辞が付いている | そのまま使用 | — | SH600887 |
報告書の種類の対応
| ユーザー入力 | report_type | A株検索キーワード | 香港株検索キーワード | 公表時期 |
|---|---|---|---|---|
| 年报 / annual | 年报 | 年度报告 | annual report | 翌年3~4月 |
| 中报 / interim | 中报 | 半年度报告 | interim report | 同年8~9月 |
| 一季报 / Q1 | 一季报 | 第一季度报告 | (A株のみ) | 同年4月 |
| 三季报 / Q3 | 三季报 | 第三季度报告 | (A株のみ) | 同年10月 |
ステップ 1:報告書を検索する
次のクエリ形式でWebSearchを使用します。
A株: site:stockn.xueqiu.com {formatted_code} {search_keyword} {year}
香港株: site:stockn.xueqiu.com {formatted_code} {hk_search_keyword} {year}
年が指定されていない場合は、まず今年を検索し、次に前年を検索します。 雪球で検索結果が見つからない場合:
- 同花顺で再検索します:
site:notice.10jqka.com.cn {formatted_code} {search_keyword} {year}- 会社名を指定して検索することもできます。例:
site:notice.10jqka.com.cn 伊利股份 2024 年度报告
- 会社名を指定して検索することもできます。例:
- それでも結果が見つからない場合は、最後の手段として
site:の接頭辞を付けずに再検索します。
ステップ 2:PDFリンクを抽出する
検索結果から、対応ソースのPDF URLを抽出します。
https://stockn.xueqiu.com/.../*.pdfhttps://notice.10jqka.com.cn/.../*.pdf
ステップ 3:正しい報告書を特定する
タイトルに次の語句が含まれる検索結果は除外します。 摘要, 审计报告, 公告, 利润分配, 可持续发展, 股东大会, ESG, summary, auditor, dividend, 更正, 补充, 意见, 内部控制
次の条件を優先します。
- タイトルに「摘要」を含まず、報告書のキーワード(例:「年度报告」)が含まれている
- URLの日付が公表予定日に最も近い
- 同条件の場合は、最初の検索結果を選択する
候補が残らない場合は、ユーザーにその旨を伝え、銘柄コード、年、報告書の種類を確認するよう提案します。
ステップ 4:PDFをダウンロードする
必要に応じて依存関係をインストールします。
pip install requests --break-system-packages
ダウンロードスクリプト(${CLAUDE_PLUGIN_ROOT}/skills/report-download/scripts/download_report.pyにあります)を実行します。
python3 ${CLAUDE_PLUGIN_ROOT}/skills/report-download/scripts/download_report.py \
--url "<PDF_URL>" \
--stock-code "<formatted_stock_code>" \
--report-type "<report_type>" \
--year "<year>" \
--save-dir "."
出力を解析する
スクリプトは、---RESULT---と---END---の間に構造化されたブロックを出力します。
status:SUCCESSまたはFAILEDfilepath:ダウンロードしたファイルの絶対パスfilesize:ファイルサイズ(バイト)message:ステータスメッセージ
ユーザーへの報告
成功した場合: ファイルパス、サイズ(読みやすいMB単位)、銘柄コード、年、報告書の種類を伝えます。 失敗した場合: エラーメッセージを伝えます。URLにアクセスできるか確認する、再試行する、または入力内容を確認するよう提案します。