SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Webブラウザで使える
文献Web API取得結果の
スプレッドシート化
~ Google Colabはじめました ~
code4lib japan 2020 ライトニングトーク発表資料
東京大学情報システム部 前田 朗
GitHubはじめました
•GitHub
•プログラムの公開サイト
•https://github.com/maedaak/
• とりあえず、図書館関連メタデータ処理用のコードを
中心に、コードを公開
• ぼちぼちと使い込んでいきます
公開中リポジトリ (リスト後半の4つがGoogle Colab用)
リポジトリ名 概要 実行環境
CiNiiOpendataParser CiNii BooksのオープンデータXMLを、タブ区切りテキストに変換 Python3
dcndl-simple_parser DC-NDL (simple)のXMLを入力にCSV化 Python3
dcndlParse.pl DC-NDL (simple)のXMLを入力に、簡単な整形出力 Perl5
on-dutyTable 当番表をランダムで生成する簡単なPythonスクリプト Pyhon3
cinii_articles_json2csv4GoogleColab CiNii ArticlesのOpenSearch取得データ(JSON形式)をCSV化 Google Colab
ndl_search2csv4GoogleColab NDL SearchのOpenSearch取得データ(JSON形式)をCSV化 Google Colab
ndlsearch_oai2csv4GoogleColab NDL SearchのOAI-PMH取得データ(JSON形式)をCSV化 Google Colab
junii22csv4GoogleColab 機関リポジトリのOAI-PMH取得データ(junii2)をCSV化 Google Colab
Google Colabは何がよい?
• Google Colaboratory (Google Colab)とは
• https://colab.research.google.com/
• Webブラウザのみで使えるPythonプログラム実行環境
• Googleアカウントがあれば無償枠で使える
• 注目ポイント
• 上記サイトに「機械学習、データ分析、教育に適してる」とあるが、
前田は「業務用端末事情によらず、仕事でPythonプ
ログラミングの作成・配布・実行ができる」ことに着目
している
文献Web API取得結果のスプレッドシート化
•Web APIの処理結果を得るのは難しくないことが多い
• 指定のURLでリクエストであれば、Webブラウザでも十分
• 残る敷居は各Web APIで異なる出力フォーマット対応では?
•そこで、Web APIの出力を取り扱いやすいようCSVに変換
するプログラムを用意してみた
• Google Colabで端末事情によらず使える
• CSVであればスプレッドシートに簡単に取り込める
• CSV化では多少のデータ劣化は許容
準備(自分のGoogle Colabにコードを取り込む)
1. Googleアカウントを(もっていなければ)作る
2. Google ColabにGoogleアカウントでサインインする
3. 上部メニュー「ファイル」→「ノートブックを開く」
4. 「GitHub」タブメニューを選ぶ
5. 前田のGit Hub(https://github.com/maedaak/ )で検索
6. プルダウンでリポジトリを指定
7. コードをダブルクリックで自分のGoogle Colabに取り込み
使い方
(NDL SearchのOpenSearch APIを例に)
1.Web APIからデータを取得
• NDL SearchのAPI
• https://iss.ndl.go.jp/information/api
• たとえば、OpenSearch APIで”library”を200件取得
• https://iss.ndl.go.jp/api/opensearch?cnt=200&any=library
・左図のように、Webブラウ
ザ(google Chrome)で表示と
ダウンロード可能
・Windows標準の
PowerShellのコマンドでもダ
ウンロードできる(OAI-PMH
の保存はこちらがお勧め)
2.Google Colabの実行(1)
• 自分のGoogle Colabに取り込んだ
「ndl_search2csv.ipynb」を開く。
• コードのブロックを上から順に実
行。
• 実行ボタンをクリックするとコード
の処理がはじまる。処理中はアイ
コンが回転するので、止まるまで
待って、次にいく。
クリック
3.Google Colabの実行(2)
• 外部ファイル取り込みのコード
の実行(右図)のときに「参照」
を開き、先にファイルに保存し
たWeb APIデータを取り込む。
• このときは、アイコンがコードの
処理中を示す回転をしていて
よい。
• ファイルの読み込みが終わる
とこのブロックの処理が完了。
(アイコンの回転も止まる)
4.Google Colabの実行(3)
• ブロックを最後まで実行する
と、処理結果CSVがダウン
ロードされる
(ダウンロードの処理はWebブ
ラウザによって異なる)
5.Google Colabの実行(4)
• ダウンロードしたCSVはExcel等のスプレッドシートで処理できる。
• コードを修正すれば、GoogleドライブにCSVを保存し、そのままGoogle
スプレッドシートで編集に入るようにも作れる。
おわりに(宣伝)
• 2020年度「 大学図書館員のためのIT総合研修」で
今回紹介のプログラムの活用も検討しています。受
講生募集中です。
• 2020年度のテーマ: 「Web APIを使ったデータの入手と
その整備 」
• Web開催: 2020.9.16(水)~ 9.18(金)
• 申し込み期限: 2020.7.31(金)
• 詳しくは https://hrd.nii.ac.jp/it/2020 をご覧ください
13

Weitere ähnliche Inhalte

Was ist angesagt?

20211004 XRメタバース時代における触覚の役割について
20211004 XRメタバース時代における触覚の役割について20211004 XRメタバース時代における触覚の役割について
20211004 XRメタバース時代における触覚の役割についてGREE VR Studio Lab
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
Node-REDのworldmapの活用
Node-REDのworldmapの活用Node-REDのworldmapの活用
Node-REDのworldmapの活用OSgeo Japan
 
落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日Yoichi Ochiai
 
テスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループテスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループTomoaki Fukura
 
今からでも遅くないSmalltalk入門
今からでも遅くないSmalltalk入門今からでも遅くないSmalltalk入門
今からでも遅くないSmalltalk入門Masashi Umezawa
 
エンジニアという仕事を楽しみ続けるためのキャリア戦略
エンジニアという仕事を楽しみ続けるためのキャリア戦略エンジニアという仕事を楽しみ続けるためのキャリア戦略
エンジニアという仕事を楽しみ続けるためのキャリア戦略Shuichi Tsutsumi
 
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニックデキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニックAkiko Kurono
 
設計・構築においてのドキュメントの重要性について
設計・構築においてのドキュメントの重要性について設計・構築においてのドキュメントの重要性について
設計・構築においてのドキュメントの重要性についてTakayuki Higashi
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたMITSUNARI Shigeo
 
言語の設計判断
言語の設計判断言語の設計判断
言語の設計判断nishio
 
SmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews, Inc.
 
[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介
[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介
[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介DNA Data Bank of Japan center
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
596.теоретические основы электротехники сборник задач учебное пособие
596.теоретические основы электротехники сборник задач  учебное пособие596.теоретические основы электротехники сборник задач  учебное пособие
596.теоретические основы электротехники сборник задач учебное пособиеivanov1566353422
 
第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれから第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれからIWASAKI NOBUSUKE
 
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCIGithub Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCIAtsuki Yokota
 

Was ist angesagt? (20)

20211004 XRメタバース時代における触覚の役割について
20211004 XRメタバース時代における触覚の役割について20211004 XRメタバース時代における触覚の役割について
20211004 XRメタバース時代における触覚の役割について
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
Node-REDのworldmapの活用
Node-REDのworldmapの活用Node-REDのworldmapの活用
Node-REDのworldmapの活用
 
落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日
 
テスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループテスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループ
 
[DDBJing31] DDBJ と NIG SuperComputer の使い方
[DDBJing31] DDBJ と NIG SuperComputer の使い方[DDBJing31] DDBJ と NIG SuperComputer の使い方
[DDBJing31] DDBJ と NIG SuperComputer の使い方
 
今からでも遅くないSmalltalk入門
今からでも遅くないSmalltalk入門今からでも遅くないSmalltalk入門
今からでも遅くないSmalltalk入門
 
エンジニアという仕事を楽しみ続けるためのキャリア戦略
エンジニアという仕事を楽しみ続けるためのキャリア戦略エンジニアという仕事を楽しみ続けるためのキャリア戦略
エンジニアという仕事を楽しみ続けるためのキャリア戦略
 
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニックデキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
デキるWebデザイナーを目指せ!本当に現場で使えるCC活用テクニック
 
設計・構築においてのドキュメントの重要性について
設計・構築においてのドキュメントの重要性について設計・構築においてのドキュメントの重要性について
設計・構築においてのドキュメントの重要性について
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
言語の設計判断
言語の設計判断言語の設計判断
言語の設計判断
 
SmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォームSmartNews の Webmining を支えるプラットフォーム
SmartNews の Webmining を支えるプラットフォーム
 
[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介
[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介
[DDBJing29]DDBJ Sequence Read Archive (DRA) の紹介
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
SCAMPER
SCAMPERSCAMPER
SCAMPER
 
5000円で誰でも作れる新世代衛星地上局
5000円で誰でも作れる新世代衛星地上局5000円で誰でも作れる新世代衛星地上局
5000円で誰でも作れる新世代衛星地上局
 
596.теоретические основы электротехники сборник задач учебное пособие
596.теоретические основы электротехники сборник задач  учебное пособие596.теоретические основы электротехники сборник задач  учебное пособие
596.теоретические основы электротехники сборник задач учебное пособие
 
第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれから第22回オープンデータトーク 地理データ形式のこれから
第22回オープンデータトーク 地理データ形式のこれから
 
Github Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCIGithub Actionsで始めるROS/ROS2のCI
Github Actionsで始めるROS/ROS2のCI
 

Ähnlich wie Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~

Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyWebフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyMasashi Shibata
 
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよはじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよShohei Okada
 
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117Tetsuya Sato
 
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーションlestrrat
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月Kazumi IWANAGA
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるKenta IDA
 
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情Hirotaka Kawata
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたTakako Miyagawa
 
Google Colaboratory ノートブック,Google アカウント
Google Colaboratory ノートブック,Google アカウントGoogle Colaboratory ノートブック,Google アカウント
Google Colaboratory ノートブック,Google アカウントkunihikokaneko1
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデルYuta Kashino
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflowTomoyuki Obi
 
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうCommon Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうblackenedgold
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Kazumi IWANAGA
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすKUNITO Atsunori
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話R S
 
Web socket and gRPC
Web socket and gRPCWeb socket and gRPC
Web socket and gRPCTIS Inc
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 

Ähnlich wie Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~ (20)

Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyWebフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
 
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよはじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
 
Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117Gitlab meetup prm説明資料_2017_1117
Gitlab meetup prm説明資料_2017_1117
 
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
 
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
Google Colaboratory ノートブック,Google アカウント
Google Colaboratory ノートブック,Google アカウントGoogle Colaboratory ノートブック,Google アカウント
Google Colaboratory ノートブック,Google アカウント
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
 
Common Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろうCommon Lisp でビッグデータを作ろう
Common Lisp でビッグデータを作ろう
 
MongoDB勉強会資料
MongoDB勉強会資料MongoDB勉強会資料
MongoDB勉強会資料
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
 
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
 
Web socket and gRPC
Web socket and gRPCWeb socket and gRPC
Web socket and gRPC
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 

Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~