Dataiku Docs Converter プロジェクト概要
1. ディレクトリ構成
dataiku-docs-converter/
├── Dockerfile # Dockerコンテナ設定
├── requirements.txt # Pythonパッケージ依存関係
├── .env # 環境変数(APIキー等)
├── src/ # ソースコード
│ ├── main.py # メインスクリプト
│ ├── scraper.py # スクレイピング機能
│ ├── markdown_converter.py # Markdown変換機能
│ └── link_fixer.py # リンク修正機能
└── data/ # 出力データ
├── scraped_pages/ # スクレイピング結果
├── markdown_files/ # 変換後のMDファイル
└── *.log # 実行ログ
2. ワークフロー
3. 実行結果
-
スクレイピング:
- 収集したURL数: 1,222件
- 出力:
data/scraped_pages/pages_info_[timestamp].json
-
Markdown変換:
- 処理したファイル数: 1,222件
- 成功率: 100%
- 出力:
data/markdown_files/*.md
-
リンク修正:
- 処理したファイル数: 1,222件
- 成功率: 100%
- 出力: 既存MDファイルの更新
4. 使用ツールの解説
スクレイピング(scraper.py)
-
使用ライブラリ:
-
requests
: HTTPリクエスト -
BeautifulSoup4
: HTML解析
-
-
主な機能:
- 再帰的なページ探索
- メニュー構造の解析
- JSON形式でのメタデータ保存
Markdown変換(markdown_converter.py)
-
使用ライブラリ:
-
markitdown
: HTML→Markdown変換 -
Azure OpenAI
: テキスト処理
-
-
主な機能:
- HTML内容の構造化抽出
- Markdown形式への変換
- メタデータの付加
リンク修正(link_fixer.py)
-
使用ライブラリ:
-
urllib.parse
: URL処理 -
re
: 正規表現処理
-
-
主な機能:
- 相対パスの検出
- 絶対URLへの変換
- ファイル内容の更新
実行環境(Dockerfile)
- Python 3.10ベース
- 必要なパッケージの自動インストール
- ボリュームマウントによるデータ永続化
- 環境変数による設定管理