SumStock Scraper Scripts
このディレクトリには、SumStock.jpから物件データを取得するためのスクリプトが含まれています。
ファイル
scrape_sumstock.py- SumStockのWebサイトをスクレイピングして物件データを取得するメインスクリプトtest_scraper.py- スクレイパーの機能をテストするためのスクリプト(モックデータを使用)real_estate_api.py- 国土交通省の不動産情報ライブラリAPIクライアントreal_estate_api_example.py- 不動産情報ライブラリAPIの使用例location_mapping.py- 地域コードと地域名のマッピング
使用方法
基本的な使用方法
python scripts/scrape_sumstock.py "https://sumstock.jp/search/02/12/12207"
Issue本文からURLを自動抽出
export ISSUE_BODY="対象URL: https://sumstock.jp/search/02/12/12207"
python scripts/scrape_sumstock.py
依存関係
スクリプトを実行する前に、必要なPythonパッケージをインストールしてください:
pip install -r requirements.txt
必要なパッケージ:
requests- HTTPリクエスト用beautifulsoup4- HTMLパース用lxml- HTMLパーサー
出力形式
スクリプトはdata/ディレクトリに、取得日をファイル名としたMarkdownファイルを生成します:
data/YYYY-MM-DD.md
各ファイルには以下の情報が含まれます:
- 取得日
- 参照URL
- 物件データ(表形式)
- 所在地
- 総額
- 建物価格・面積・単価
- 土地価格・面積・単価
- ハウスメーカー
GitHub Actionsとの統合
このスクリプトは.github/workflows/scrape-sumstock.ymlワークフローから自動的に実行されます。
- トリガー:
- スケジュール実行(毎月1日)
- 手動実行(workflow_dispatch)
- 処理フロー:
- IssueからURLを抽出
- データをスクレイピング
- Markdownファイルを生成
- 新しいブランチを作成
- Pull Requestを作成
テスト
モックデータを使用してスクリプトの機能をテストできます:
python scripts/test_scraper.py
不動産情報ライブラリAPI
国土交通省の不動産情報ライブラリAPIを利用して、地価公示や不動産取引価格などの公的データを取得できます。
APIキーの取得
- 不動産情報ライブラリにアクセス
- APIキーを申請・取得
- 環境変数に設定:
export REINFOLIB_API_KEY="your-api-key"
使用例
from scripts.real_estate_api import RealEstateInfoLibAPI
# APIクライアントを初期化
api = RealEstateInfoLibAPI(api_key="your-api-key")
# 不動産取引価格を取得(東京都、2022年)
transaction_data = api.get_transaction_price(year="2022", area="13")
# 地価公示情報を取得(東京都、2024年)
land_price_data = api.get_land_price(year="2024", area="13")
# 市区町村一覧を取得(東京都)
city_list = api.get_city_list(prefecture_code="13")
詳細は real_estate_api_example.py を参照してください。
API機能
- 不動産取引価格情報取得 (
get_transaction_price)- 実際の不動産取引価格データをGeoJSON形式で取得
- パラメータ: 年、地域コード、四半期(オプション)
- 地価公示情報取得 (
get_land_price)- 地価公示・都道府県地価調査データを取得
- パラメータ: 年、地域コード
- 市区町村一覧取得 (
get_city_list)- 都道府県内の市区町村一覧を取得
- パラメータ: 都道府県コード
- 鑑定評価書情報取得 (
get_appraisal_report)- 鑑定評価書情報を取得
- パラメータ: 年、地域コード、用途区分(オプション)
エラーハンドリング
RealEstateInfoLibAPIAuthError: API認証エラーRealEstateInfoLibAPIRateLimitError: レート制限エラーRealEstateInfoLibAPIError: その他のAPIエラー
参考リンク
注意事項
- スクレイピングはSumStock.jpの利用規約を遵守して実行してください
- 過度なアクセスを避け、サーバーに負荷をかけないように注意してください
- HTMLの構造が変更された場合、スクリプトの更新が必要になる可能性があります
- 不動産情報ライブラリAPIの利用規約とレート制限を遵守してください