でぃするだいありー?

そんな気はないんだれど、でぃすっちゃってる。 でぃすでれ?

読物 『Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド』

Amazonのレビューにもそのようなことが書かれているが、Pythonをちょっとかじったレベルにある者がより深く知るために利用するとしても良書である。

本書ではOS XおよびUbuntuを実行環境として提示しているが、当方はRaspbianを実行環境として利用し、ほとんど問題なく再現できた。

とはいえ、OSが異なるために発生した問題がいくつもある。
小さいところはPythonライブラリの互換性によるもので、そもそも本文がtypoであるっぽかったのと合わせ技になって解決に時間を要してしまった。
その詳細は本書P.149に記載されている『pip install google-api-python-cliet』の一文。これはNGで、『pip install google-api-python-client==1.5.5』でOKとなった。

このように、Raspbianで実行環境を整備するためには多少のあれこれが必要となる(おそらく本書の推奨環境で行ったとしても、おま環で一筋縄にいかないと思われるが)。そのような意味では「Raspberry Piを手に入れたけれどやることなくなっちゃったよどうしよう」という方にも良書と思える。
不屈の精神とぐぐる心があればLinuxの環境構築のトレーニングにもなろうし、クローリングやスクレイピングおよびデータ解析はIoTとも連動する技術であろうと思えるからだ。

蛇足ながら読み方の留意点として、環境整備のためのインストールやコンパイルに長大な時間を要する場合があるので、本文を少し先まで斜め読みして、pip install~なんかに出くわしたら実行しつつ、本文を読みながら待つやり方がよいかもしれない。

技術書に大きな感慨を得ることは稀なのだけれど、本書は大いに薦められる一冊である。星10個くらい。
※ただし、Amazonで購入した経験のない方は一部の実装が試せないかもしれない。


なお、Raspi3のディスクとして使用していた16GBのmicroSDが、その他のことにも利用していたとはいえ本書の環境構築のためにフルになってしまったことは余談である。
Raspbianで試そうという方は32Gより大きいサイズがよろしかろうと思う。Pythonのライブラリだけで相当なディスク容量を消費するので。

当方においては、とどめとなったのはPhantomjs。ソースファイルは168M程度だが、コンパイルに2G程度の容量を要する。LAN越しのNASをマウントしてコンパイルを試みてみたが、OS側のディスク容量が不足していたため32GBのmicroSDに拡張せざるを得なかった。
インストールについては以下のサイトにお世話になりました。

あまり細かく突っ込むつもりはなかったのだけれど、どハマりしてしまった箇所について。リスト5.28について、『<div id="map"></div>』の箇所は『<div id="map" style="width:100%; height:400px;border:#000000 solid 1px;"></div>』のように記述する必要がある。

また、本書第2章でPythonのインストールを行うが、本書の通りにインストールしてもインストールされるバージョンは3.4.xである(これはRaspbianに限らず、AWSUbuntuでも同じだった)。
プログラムなど問題なく動作するので気にせずにいたが、第7章でハマるので、仮想環境構築の復習を望まない場合はあらかじめなんとかして3.5.1等をインストールしておくのが吉かもしれない。venv作成時も『python3.5 -m venv hogehoge』とする必要がある。

他に特に有用だった参考資料について。

なお、当環境ではOpenCV3.2を用いたが、コンパイルには2時間強要した。

つまづきながらも全章ねちこく粘って一通りこなしたが、Appendixだけはvagrant upがコケて、ネットにも十分なナレッジがないようなので放棄した。RaspiかAWSで試せればいいもんね。