表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
2/13

データを取得する

 なろうAPIの仕様については、

https://dev.syosetu.com/man/api/

に記述されています。


 なろうAPIを利用してデータを取得する、ということで検索を掛けてみると、まず既存でpythonのスクリプトが出てきます。実績はあるスクリプトだと思いますが、普通の人にはpythonの環境を整えるのはちょっと敷居が高いだろうと。

 ということで、windowsで標準で用意されているPowerShellのスクリプトでAPIデータを取得できるようにしてみました。

 まあ、PowerShellでも敷居が高いことは高いのですが、pythonよりはましかな…… と。


 スクリプト自体は、

https://mypage.syosetu.com/mypageblog/view/userid/1633544/blogkey/3024577/

の活動報告に載せてあります。この、線で区切られた部分をコピペしてファイルに保存します。ここでは、「narouSample.ps1」と名前を付けることとします。無駄に空行が入っていますが、動作には支障は無いでしょう。


 このスクリプトを使うには、データの保存場所とデータの取得開始日時をカスタマイズします。ファイルの先頭部分に記載されている値を修正することになります。Jsonファイルで1GB、さらに日ごとにzipしたファイルが作られるので、それなりに余裕のあるディレクトリを指定してください。

 コメントに書いてありますが、現状でJsonファイルが1GB、zipファイルが各日190KBぐらいになります。もし、大きすぎる場合は、APIのオプションで取得内容を制限したり、取得する時間範囲を狭めたりすることになるかと思います。


 スクリプトが保存出来たら、PowerShellを起動します。画面左下のサーチboxにpowershellと入力すると、

挿絵(By みてみん)

結果が表示されますので、これを起動します。すると、コマンドプロンプトと同様なウィンドウが立ち上がりますので、ここで先に保存したファイル名をフルパスで指定すると、プログラムが起動されます。

 なお、PowerShellではカレントディレクトリにあるスクリプトでも、ファイル名だけでの実行はできません。相対パス指定するなら、./narouSample.ps1などと、カレントからの相対パスで指定します。

 また、実行ポリシーがデフォルトだとスクリプトの実行を許容していないため、例えば

> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

などとして、スクリプトの実行を許可します。なお、これは多少セキュリティレベルを下げる話で、PowerShellのコマンドラインの起動オプションでExecutionPolicyを指定したり、ハードルは高いですが署名をつけたりする方法もある事はありますので、適当な手段を選んでください。


 スクリプトを実行すると、データ取得時に上の方でちらちらと進捗が出たりしますが、後はいつのデータを取得しているかが順に表示され、最後にJsonファイルが出力され、それをzipに固めてプログラムは終了します。

 現状の設定で、通信データ量は220MB程度だと思いました。適用は停止されているようですが、もともとなろうAPIには一日当たりの利用量制限があるようです。それは400MBとなっているので、一日一回ならデータを取得しても許容範囲かな、と考えています。


 なお、APIの呼び出しですが、特段のインターバルは取っていません。これで、70万件ほどのデータを取得するのに、約3-40分かかっています。


 これで、Jsonファイルが取得出来たら、次のこれをExcelに読み込むことになります。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ