ブックレビュー「Rによるスクレイピング入門」
著者の方より,標記の書籍をご恵贈いただきました:
著者の方より「Rによるスクレイピング入門」 https://t.co/XrLvK1QrjJ をご恵贈いただきました。私が苦手なWeb技術の基礎や,APIの実践など,本当に貴重な情報と豊富なコード実例が盛り沢山で素晴らしいの一言です。ありがとうございます! pic.twitter.com/kLTsm33MkD
— kazutan v3.3.3 (@kazutan) 2017年3月21日
上記ツイート内に記述したのですが,非常に素晴らしい本です。著者の4名には日頃からRに関してお世話になっていて,よく公開されている資料を読んでは自分でスクレイピングやAPIを叩いたりしていました。
ただ,本音を言うと,もっと早くこの書籍を手にしたかったです。
本書の構成と全体的な印象
構成
この書籍は6章編成となっています。
- CHAPTER 01 ウェブスクレイピングの準備
- R, RStudioの導入とデータハンドリングの基礎。
- CHAPTER 02 ウェブ技術の基礎
- HTMLの基礎からXPATH, XML, JSONからHTTPプロトコルから認証といった,Web技術に関する基礎をRを使って説明するという画期的な内容。
- CHAPTER 03 ウェブスクレイピング・API入門
- 比較的簡単な課題を用いて,実際にスクレイピングを実施したりAPIを叩いたり。
- CHAPTER 04 ウェブスクレイピング実践
- ブログから情報抽出,抜き出したJSONから変換,そしてログイン認証が必要なサイトへの対応などかなり実践的な内容。
- CHAPTER 05 API実践
- e-StatやGitHubといったより実践的なAPIの利用と,そのデータの活用が解説。
- CHAPTER 06 オープンデータの活用
- 実際に公開されているオープンデータについて,紹介も含めデータ取得と整形および活用を紹介。
思ったよりもコンパクトな書籍で全体的なページ量もそこまで多くありません。そしてコードと実行結果がたくさんあります。また第2章が最も分厚く,その次に第5章が多めです。
全体的な印象
まえがきにもあるのですが,この本は1章と2章の基礎編と,3章以降の応用編と明確に分かれています。そしてこの本を決定的に特徴づけるのは2章だと私は考えます。
スクレイピングと聞くと「豊富な実例やテクが大事!!」と思われますが,Webに関する基礎的なお話が理解できないと,いざ自分がやろうとした時にあっという間に止まります。書籍に何度も出てきますが,Webサイトの構成やAPIの仕様はもうバラバラで,それぞれで対応しないといけないことがたくさんあります。そのためにはドキュメントを読まなきゃいけないのですが,Web技術の基礎がなければお手上げです。私もこれまでこんな感じで,その度に解説資料などを読んでいきましたが,Web関連技術なんて雰囲気でやってきた私にはハードルが高くて何度も泣いてました。
ところがこの書籍は「Rのコードを実行しながら学ぼうじゃないか」と提案してくれるのです。感動です。またこの2章で説明したり使っているパッケージや関数がそのまま3章以降の実践でも活躍します。非常に綺麗な流れでスムーズに学べるなと思いました。もっと早くこの書籍を手にしたかったです。
早く手にしたかった理由
さっきからしつこく言っている理由ですが…ようするに毎度苦労しながらやってきたからです。
スクレイピングから位置情報を取得・可視化
3章や4章あたりにあるこの流れですが,以前こんなことやってました:
これらは気象庁HPの台風情報からスクレイピングして整形し,それを可視化したものです。こいつは一体何がしてくてこんなことしてたんだと今では自分でも思います。とはいえはじめてのスクレイピングで,この書籍の1章と2章を当時読めてたらどれだけ楽になったことかと今なら思います。
これが2015年後半で,以降趣味だけではなく調べものなどでも活用していくようになりました。
APIを叩いてデータを取得
個人的な必要だったり,業務上必要になったりで,この1年半くらい頻繁にAPIを叩くようになりました。たとえばこんなことなど:
はい,そうです。この2つとも5章で詳細に解説されています。もちろん著者の方々がすでに公開されていた資料を元に進めていたのですが,基礎がないので四苦八苦してなんとかやってたけどこの書籍読めば一発だよねと思いました。
他にも最近ではHabiticaのAPIを叩いて自分の生活を可視化(して反省)しようと,Rからデータ取得したりした(内容は未公開)のですが,基礎的なことがわからず相当な時間を消費しました。2章と5章に書いてある内容を知っていればと今では思います。
さいごに
スクレイピングという言葉に反応したRユーザーの皆さん,買いましょう。