![見出し画像](https://assets.st-note.com/production/uploads/images/30332695/rectangle_large_type_2_9f890c51a1f9c0ddbd3da3bbd7aced82.png?width=1200)
読書メーターから読書記録をエクスポートした話
読んだ本の記録を置いておく場所として、読書メーターというWEBサービスを使用している。読書の記録をまとめたり、自分と同じ本を読んだ方の感想を見る機能が便利だ。
ただ、現状では自分が登録した感想の本文検索ができなかったり、サービスが終了したときに、データの引き継ぎができないと困ると考えて、今回自分の読書記録のデータをエクスポートして、バックアップを作成した。次回のエクスポート作業のために、備忘録として残しておく。
できたこと
・感想の本文検索ができるようになった。たとえば「本の装丁について書かれたあの本はなんだっけ?」と思ったときに「装丁」と打って検索すれば、その本の感想の欄がヒットする。この検索機能、読書メーターに実装してくれないかなぁ。
・本の著者や、本を読んだ月でソートできるようになった。
・昨年1年間に読んだ本の記録を、見やすくエクセルに一元化できた。読書メーターに投稿した内容って、どんどん流れていってしまうフローなんだけれど、この作業でストック化することができた。作業中にざーっと読み返して、昨年1年間に読んだ本の振り返りにもなった。
・amazonのURLと、ISBNコードも追加できた。ISBNコードを使う機会があるかどうかはわからない。
最終的にこんな感じになった。
内容的には、読書メーターのまとめページ(https://bookmeter.com/users/796595/summary/yearly)と同じだが、こちらのほうが見やすい。
できていないこと
・読書メーターの感想に、補足的にコメントを追加していた場合、今回の方法ではコメントの内容は出力できない。読書メーターの感想欄は255文字が上限のため、文字数内で書ききれないことはコメント欄に書いておくこともしばしばあった。コメントが出力できないのは少し残念。
・読書メーターの仕様で、去年1年分または先月1ヶ月分の読書記録しか出力できない。検索してみたが、やはり1年前か、先月1ヶ月分の記録しか出力できないようで、毎年忘れずに作業するしかない。InternetArchiveの機能も試したがだめだった。自分は本格的に読書メーターを活用しはじめたのが去年からだったので、今年にこの点に気づけたのは良かったと思う。今後、年に一回の作業を忘れなければ、取りこぼすことはない。
エクスポートしたデータ内容
・本の名前
・本の感想
・読了日
・著者
・読書メーターのURL
・amazonのURL
・ISBNコード
作業内容
※素人が我流で行った作業なので、すごく非効率的な方法になってしまっている可能性があります
手順①読書メーターの去年の読書記録を出力する
以下のリンクから、読書記録をテキストデータで出力できる。
[読書管理]>[まとめ]>[去年分]>[Facebookでまとめる]
https://bookmeter.com/users/796595/summary/yearly/posting/facebook#posting_type_tabs
手順②テキストエディタでcsv形式に変換する
手順①で出力したテキストをすべてコピーして、テキストエディタ上にペーストする。自分はサクラエディタというソフトを使用した。
・以下は細かい置換作業
・半角カンマ「,」を「\x20」に置換(=削除)
著者が複数いる場合、半角カンマで区切られてしまっているのでそれを半角スペースにする
これをやらないと、著者が複数いる本のみ列が増えて、整理しにくくなる
・改行をカンマに置換「\r\n」→「,」
・一冊ごとに改行を行う
読書メータから出力したデータは「■」マークで1冊ごとに区切られているので、「検索」→「置換」から、「正規表現」にチェックを入れて「■」マークを「\r\n」に「すべて置換」することで改行される
・「 著者:」→「,」
「著者」だけだと感想内の「著者」ワード」も含まれるので、半角スペースとコロンを入れる
・「読了日:」→「」(削除)
・「([0-9]{2})月([0-9]{2})日」→「\1月,\2日」(月と日を別の列にするため)
・一番上の行に「タイトル,感想,読了月,読了日,作者,読書メーター,amazon,ISBN」と追記する。
置換作業が終わったら、拡張子.csvで保存する。
文字化け防止のため、「文字コード」を「ANSI」に指定する。
手順③エクセルにインポートする
グーグルスプレッドシートhttps://docs.google.com/spreadsheets/u/0/
空白→ファイル→インポート→さっきのcsvを選択→区切り文字はカンマに設定→データをインポート
体裁を整える
・「表示」→「固定」→「1行」を選択
・テキストを折り返す
・感想の欄の列の幅を適宜広げる
・1番上の行(A1~A6)を指定して「データ」→「フィルタを作成(オンにする)」
(著者名や読了した月でソートするため)
手順④amazonのURLとISBNコードを追加する(おまけ)
・amazonのURLを表示させるセルに、以下のように入力する。
「F2」の部分には、読書メーターのURLを入力したセルを指定する。
(WEBスクレイピングという技術で、読書メーターのページ内にリンクがあるamazonのURLを指定しているらしい)
=IMPORTXML(F2,"//a[@class='image__cover']/@href")
・ISBNを表示させるセルに、以下のように入力する。
「G2」の部分には、amazonのURLを入力したセルを指定する。
(amazonのURLに含まれているISBNコードを抽出している)
=MID(G2,37,10)
補足
この記事で書いたエクスポート方法は、非公式の方法になる。作業前に、念の為、読書メーターの利用規約を確認した。
「利用者が本サービスに投稿した情報に関する著作権は、原則、投稿した利用者に帰属するものとします」との記載があった。
また今回の作業は、読書メーターの「昨年に読んだ本まとめ」機能を活用して得た文字列をいじっているだけということもあり、エクスポート作業を行うこと自体に問題はないと判断した。
参考にしたサイト
・エクスポート作業全般、以下のサイトを参考にさせてもらった。このサイトでは、細かい部分の作業手順が省略されていたため、そのへんを今回の記事にまとめた。
http://yuukixi.com/blog-entry-2796.html
・WEBスクレイピングという技術がよくわからなかったので、以下のサイトで調べた。
https://blog.members.co.jp/article/37782
・amazonのURLからISBN番号を抽出するために、MID関数について調べた。
https://gsuiteguide.jp/sheets/func-mid/
・CSVとはなんぞや
https://www.waenavi.com/entry/20180729/1532867725
https://free-creators.com/egular-expression-csv-file/
・読書記録データをCSVファイル形式にしたら文字化けしたので、以下のサイトの方法で解決。
https://support.freee.co.jp/hc/ja/articles/115002727126-CSV%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95
・サクラエディタの文字置換機能について
http://45395.org/uncategorized/insert-a-new-line-sakura-editor/
・正規表現についてhttps://www.ilovex.co.jp/Division/ITD/archives/2006/08/post_25.html
・日付の処理
http://pc.dearie.jp/hidemaru/replace/9.html
この記事が参加している募集
最後までお読み頂きありがとうございました!