Skip to content

drowse314-dev-ymat/hanrei_getter

Repository files navigation

最高裁判例蒐集スクリプト

概要

最高裁の判例検索 の結果(html)から判例をなるべく穏便に取得するためのスクリプトです。 30秒のリクエストディレイをはさみながら、 <HanreiRecords><Hanrei>...</Hanrei>...</HanreiRecords> というようなXMLを生成していきます。

動かし方

事前に必要なのは以下になります。

  • Python2.7およびvirtualenv
  • pdftotext

判例をダウンロードするには、まず 検索システム の事件リストページを収集します。 事件リストページとは、検索フォームを適切に埋めて 検索 ボタンで送信すると現れるリスト表示のページで、 http://www.courts.go.jp/search/jhsp0010Back.actionhttp://www.courts.go.jp/search/jhsp0010List2 のようなURIをもつ動的なものになっているはずです。 これらはクッキー制御が厳しくなっているため、ブラウザの保存機能で取得するのが最も手短な仕方だと思われます。 このとき、ファイル名の形式を <any text>_<category>_<any text>.html のようにすると、 https://github.com/drowse314-dev-ymat/hanrei_abstract_extractor との連携に役立ちます。

minji_searches
├── minji_ju_page1.html
├── minji_ju_page2.html
└── minji_ju_page3.html

収集した検索結果リストから、個々の判例のデータを取得します。

$ cd hanrei_getter
$ virtualenv-2.7 venv # 名前はなんでも
$ source venv/bin/activate
$ pip install -r requirements.txt
$ python run.py /path/to/minji_searches

判例は検索結果リストのhtmlファイル単位でダウンロードされ、ひとつのリストにリンクが含まれる判例群から ひとつのXMLファイルが生成されます。 XMLファイルは、 hanreidata 内に順次蓄積されます。 ファイル名は <file name>.html に対して <file name>.xml となります。

検索結果リストは、複数のディレクトリから参照することができます。 その場合は単純に、 python run.py list_dir1 [list_dir2 list_dir3 ...] とします。

英語判例の取得

英語版の判例検索 にも(無理やり)対応しています。 以下のオプションを指定することで、 日本語版とほぼ同様の処理になります。

$ python run.py english_list_dir --en_list

英語版では様々なデータ抜けが発生し、すぐに異常終了してしまうかもしれません。 その場合は、ブランチを interactive_fallback に切替えると、エラーが送出される前に抜け属性をスキップするか、 または補完するかどうか等を対話的に選択することができます。 --en_missing_default オプションを付加すると、この選択を自動化することができます。 オプションの詳細については、 python run.py --help を参照して下さい。

$ git checkout interactive_fallback
$ python run.py english_list_dir --en_list --en_missing_default 1  # 全て自動的に空欄に

ダウンロードの中断

ダウンロード中に異常終了した場合、あるいは割り込みによって終了した場合、同じリストについてまたダウンロードを始めると、 ダウンロード済の判例をキャッシュとして扱い、途中から再開することができます。 このとき、キャッシュの有無は hanreidata 内に蓄積されたXMLファイルの名称によって判断されるので、異常終了によって 空のXMLファイル等が生成された場合は注意して下さい。

About

最高裁の裁判例検索結果(html)から判例をゲットします

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages