2010年10月23日土曜日

青空文庫リストDBの再構成

 青空文庫の作家別作品一覧CSVから作家リスト、作品リストを再構成するスクリプトがだいたい出来た。「翻訳者名等」のカラムが曲者で、作者不詳の外国作品等で翻訳者と著者を兼ねる人が居る、編集者もここに入るが翻訳者との区別がつかない等が問題。編集者としての存在は今のところ1作品だけなので無視して、著者と翻訳者しか居ないという前提で矛盾無く扱える手順はできた。
 CSVにはWeb上で公開されている読み仮名などの情報が無いので、各著者、作品毎に青空文庫をスクレイピングして情報を追加した。読み仮名はソートで必要になるし、生誕日がわかれば「今日はどの作家の誕生日」というトピックでお勧め作品のリストアップができる。没年月日も取り込んだけど、これは使わないだろうな。

 スクレイピングは、当初はBeautifulSoupを使っていたが、パースエラーが時々起きる上に、回避手段としてblog等に載っているhtml5libを使う手段が実はhtml5lib側で拒絶されてる事がわかり、lxmlを使う方法に改めた。結果、回りくどいやり方で取り出していた文字列がXPathを使って一発でできるようになり、パースエラー回避以外にもメリットがあった。lxmlはGAE上では使えないようだが、あちらではスクレイピングはしないだろう。

0 件のコメント:

コメントを投稿