1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

宮本百合子が1,186作品もある。青空文庫の全作品を1枚のCSVで検索した【kurashi-skill Day 24】

1
Posted at

本屋にも図書館にも行かずに、著作権の切れた文学作品がタダで読める。青空文庫だ。漱石も太宰も、宮沢賢治も、全部無料で全文公開されている。「APIはあるの?」と聞かれたら、答えは「ない。でも、もっと良いものがある」だった。全作品の一覧が、1枚のCSVで公開されているのだ。ダウンロードして検索すればいい。APIキーもログインもいらない。ただし、このCSVと本文には、地味で優しい罠がいくつもあった。

起: 17,840作品が、zip1個で降ってくる

一覧は「拡張版」CSVで、zipに入って2,092,746バイト(2026-09-30実測)。開くと19,502行あった。ただしこれは作品数ではない。翻訳物は著者と翻訳者で2行になるからだ。作品IDで畳むと17,840作品、登場する人物は1,335人。宮沢賢治の『注文の多い料理店』から芥川の短編まで、日本の近代文学のだいたい全部がこの中に入っている。作品名・読み・初出・底本・図書カードのURLまで入っていて、検索はこのCSVを引くだけで完結する。

承: いちばん多い作家は誰だと思う?

カタログが手元にあると、つい集計したくなる。著者別の作品数1位は誰か。漱石(113作品)か、太宰(274作品)か。答えは宮本百合子の1,186作品だった。2位は岸田国士の641。評論や日記や書簡まで全部載るので、量産型の作家が上位に来る。文字遣いの内訳も面白くて、新字新仮名が12,130行、新字旧仮名が4,856、旧字旧仮名が2,377もある。賢治の旧仮名遣いのまま読めるということだ。あと意外なことに、著作権フラグ「あり」の作品が928件ある。著作者の許諾を得て公開しているもので、「著作権切れ専用」というわけでもないらしい。

ひとつ立場を押さえておくと、この一覧はリアルタイムではない。実測時点の最新は2026-08-21のスナップショットで、2026年に公開された作品は71件だった。不定期更新なので「最新刊が載ってない」は仕様である。

転: 本文のURLは、推測できない

ここからが罠だ。『吾輩は猫である』の図書カードは card789.html。では本文は files/789.html か? 違う。実際は files/789_14547.html だった。後ろの通し番号は作品IDと何の関係もない。つまり本文にたどり着くには、必ずカードページを1回取りに行って、リンクを拾うしかない。スキルにはそう書いた。

そして文字コード。図書カードはUTF-8なのに、本文のXHTMLはShift_JISだった。同じサイトの中で混在している。ヘッダのcharsetを見て切り替えないと文字化けする。CSVはBOM付きUTF-8で、素のutf-8で読むと先頭の列名が壊れる。さらにルビ。本文は「吾輩(わがはい)」がrubyタグの構造で入っていて、テキスト化するときに読みと括弧を要素ごと落とさないと、「吾輩()は猫である」という寂しい文ができあがる。最初の実装でちゃんとやらかした。

結: APIがないことは、欠点ではなかった

  1. 一覧がCSVで降ってくる世界は、APIより簡単だ。 キーも回数制限もなく、2.1MBを取れば全部手元にある。検索はローカルで終わる。

  2. URLは推測せず、カードを読め。 作品IDと本文ファイルの番号は無関係。推測で組み立てたURLは、いつか静かに壊れる。

  3. 文字コードはページごとに違う。 カードはUTF-8、本文はShift_JIS、CSVはBOM付き。「サイトの文字コード」は存在しない。ページごとにヘッダを見る。

スキル名はaozora。作品検索・著者一覧・本文のテキスト抽出(ルビは基底文字だけ残す)までやる。kurashi-skillは公開開発中。リポジトリはここ → https://github.com/tahodev/kurashi-skill

ちなみに『吾輩は猫である』の本文は344,247文字あった。冒頭の「名前はまだ無い」までちゃんと取れているのを確認して、なぜか少し嬉しくなった。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?