1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【簡易版】最低限の読書メーターの記録情報をエクスポートする方法

Last updated at Posted at 2020-08-14

#はじめに

はじめに言っておきますが、読書メーターの情報はエクスポートできません。詰みました。お疲れ様です。

しかし、エクスポートの目的は過去情報を抽出することなので、とりあえず強引にでも抽出できればOKなわけです。これは疑似エクスポートみたいな感じですかね(そんな大したことやってるわけじゃない)。

僕は読書メーターを使っていたんですが、あまり使い勝手がよくないと思って使っていました。「もういっそのことスプレッドシートで読書管理・記録しよう!」と決めたのです。

自分が欲しいと思った情報は、読了した書籍の読了日、タイトル、著者名ぐらいでした(+αのページ数)。感想とかは全部書いているわけじゃないし、スプレッドシートで管理はしないだろうなーと思ったので不要でした(感想文はノートで記録するか、書くなら本のキーワードぐらいでいいかな)。Webスクレイピングもダルイし、簡単な方法ないかなーって感じ。

簡単な方法ありました。

※プログラミングとか全然わからない人いたら「最後に」のところだけ読んでください。

完成図

読書メーターの記録をスプレッドシートへ移行できました~。

image.png

#必要事項

  • 環境:Python 3.7.4
  • 読書メーターの情報
    • 読了日
    • タイトル
    • 著者名
    • ページ数

#準備:読書メーターの情報の入手

##1.「読んだ本」→「テクストのみ」にしてそのままコピーします。

これが意外と盲点だったこと。「テキストのみ」の機能使ったことなかったんですが、「めっちゃ使えるじゃん!」って思いました。
この記事の最大のポイントです。あとはコピペで終わり。楽勝。あなたの発想力で煮るなり焼くなりできると思います。
image.png
image.png

##2.Excelにすべてをそのまま張り付ける

image.png

※実は張り付け方もっといい方法あるんですかね?これがよく分からなかったのでPythonで整地したんですけど。よくわからなかったので縦コピーになっちゃったんですよね笑。それで「どうするか」ってなって強引に弄りました。

##3.不足情報を追加または修正する
たまに情報がないやつがあります(以下の画像)。タイトルと著者名が一緒のセルに入っていることもある。適宜修正してください。僕はプログラムを実行しながら修正していきました。そっちのほうが分かりやすいかも。

image.png

##4.ExcelをCSVにして保存する
とりあえず名前はinput.csvにしておきます。

プログラムを実行する

アニメ見ながら脳死で書きました笑。自分用に適当に作ったのでクソ汚いです。
一回書いたら終わりの捨てプログラムだったのでお許しください。

main.py
import csv
import pandas as pd

RESULT_CSV_TITLE = 'output.csv'

date_list = []
title_person_list = []
page_list = []

df = pd.DataFrame()

with open('input.csv', mode='r', encoding='utf-8') as f:
    all_row = csv.reader(f)

    for row in all_row:

        # 空白と余計な列を削除
        if len(row) == 0 or row[0] == '編集する':
            continue

        # 日付
        try:
            if '日付不明' in row[0] :
                date_list.append(row[0])
                continue
            date_split = row[0].split('/')

            year = date_split[0]
            month = date_split[1]
            day = date_split[2]

            date_list.append(f'{year}/{month}/{day}')
            continue
        except:
            pass

        # ページ
        try:
            page = int(row[0])
            page_list.append(page)
            continue
        except:
            pass

        # タイトルと著者のリスト
        title_person_list.append(row[0])


    title_list = title_person_list[::2]
    person_list = title_person_list[::-2]
    # print(len(date_list))
    # print(len(page_list))
    # print(len(title_list))
    # print(len(person_list))

    person_list.reverse()

    df['日付'] = date_list
    df['タイトル'] = title_list
    df['著者'] = person_list
    df['ページ'] = page_list

    print(df)
    df.to_csv(RESULT_CSV_TITLE, index=False)

結果

PyCharmを使って結果を見ているので以下に示す画像のようになります。
日付、タイトル、著者名、ページ数って感じになりました。
image.png

あとは煮るなり焼くなりしてください。
僕はスプレッドシートにoutput.csvの中身を全コピーして、コンマ区切りで分割しました。
image.png

最後に

「プログラムも何もわからない!」って人は @yuki_imamura_ のDMにでも連絡ください。お手伝いできればします。

いや~、それにしても読書管理・記録アプリは色々使ってきたけど、どれも微妙だね。結局はGoogle スプレッドシートとかで自分で管理するのがいいのかね。

Webスクレイピングを使えば読書感想文も抽出できると思います(サービスの規約は見てません)が、今回僕は必要なかったので簡単にやりました。どうしても必要だという方がいればプログラム作るのでそれもDM飛ばしてください。

ページ数は…一個のモチベーション指標として使っていこうかな~。

てなわけで読書生活を思う存分楽しみましょう!

何かの参考になれば幸いです。

参考文献

1
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?