« 2017年1月 | トップページ | 2017年3月 »

2017年2月

2017年2月27日 (月)

読物 『データを集める技術 最速で作るスクレイピング&クローラー』

Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド』、『Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例』に先立って読了していたが、クローリングだとかスクレイピングだとかについて知見を持ち合わせていないために、自身における本書の位置づけを図りかねていた。

『Python~』および『Ruby~』はそのタイトルが示す通りプログラミングを用いるものであり、本書は無料ないし有料で提供されているWebサービスを利用するものと大別できる。

プログラミングという技術にではなくデータを集めるという観点に立ったとき、どうやったらいいか、なにをやったらいいか、よくわからないがとりあえずデータを集めてみようというとき、本書に紹介されているノウハウは即効的に役に立つ。
IFTTTを用いてTwitterとかGoogle Alertから取得したデータをGoogleスプレッドシートへと自動登録する仕組みは特に、簡単ですぐできる。

とはいえ、集めたデータをいかにして有効活用するかがキモである。個人的には、この辺について特に強い動機をもちあわせていないために、集めたけれどどうしようという状況にある。

データを集める技術 最速で作るスクレイピング&クローラー (Informatics&IDEA)
佐々木 拓郎
SBクリエイティブ
売り上げランキング: 24,887

2017年2月25日 (土)

読物 『あなたの人生の物語』

おすすめのSF的な情報に触れると、割と高確率で遭遇していた。

個人的にもおすすめできる。ファンタジックなモチーフをSFで語る作品は大好物。
筆致も巧みで、大上段に構えてこの物語世界はこうですよと説明するのではなく、ああこういう世界なんですねとすんなりと受け入れさせてくれる。

本質としては哲学書なのかもしれない。物語として秀逸で、いかにも哲学とかテーマとかいう押し出しはないが、ぶれない芯のようなものを感じさせ、それがそう思わせたのだろう。
個人的嗜好からするといくつかの作品については「あれ、ここで終わっちゃうの?」という思いを禁じ得なかったが、いくつかの作品については文句のつけようもなく花丸。

今よりもSFを楽しんで読んでいたころに出会った、ニーヴンやル=グィン、ストルガツキーらの思い出に浸ってしまった。

あなたの人生の物語 (ハヤカワ文庫SF)
テッド・チャン
早川書房
売り上げランキング: 4,710

2017年2月20日 (月)

読物 『Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例』

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
佐々木 拓郎 るびきち
SBクリエイティブ
売り上げランキング: 86,147

当方、Rubyというものを全く知らず、本書に挑んだ。レベルでいえば0なカンジ。
実践はRaspi3、Raspbianで行った。

本書を読み進めるにあたり、先にPythonを学び、Pythonによるクローリングを学んでいたため、「Rubyという言語」と「Rubyによるクローリング技術」を分けてサンプルコードを識別できるようになっていたのが大きい。
とはいえ、クローリングによってプログラミング言語を学ぶことはあまりお勧めできない。正規表現をおまじないとみなせない方には鬼門であろう。

Rubyの諸作法はわりとすぐになれたが、難物は環境構築である。バージョンごとに環境を分けてくれる仕組みがあるので対処は比較的容易ではあるが、2014/08/22刊行の書籍に記されていることは2017/02の時点では再現できない場合がある。

その原因の一つには、取得対象の内容が変更されてしまったことによる。
クローリングという技術が求める取得対象とはすなわちWebサイトであるが、例えばAmazonなどもページの記述に変化があったようで、本書のサンプルコードがそのままでは動かないことがある。

別の原因としては、Rubyのバージョンによる挙動の違いがある。
別件でインストールしていたRubyのバージョンでは動かないサンプルがあり、インストールできないライブラリがあった。ログを吐いてくれるのでそれを参考に対処できるが、本題すなわち本書の内容を追うことからはそれまくる。

まとめると。

Rubyに知見を持つ方がクローリングの技術を学ぶためには良書であろう。

Ruby初心者でクローリングに興味を覚えたからついでにRubyを習得してやろうという意気込みの方には条件付きで良書である。先にも述べたが、本書に記載されている情報が古いため、一気呵成な読習とはいきがたいからだ。
その例をあげるならば。本書のサンプルコードがデータの取得対象としているWebサイトのHTML構成が変わってしまっていること。Google APIの使用方法が変更され、本書の内容とは異なっていること。Rubyの環境構築に多少の知見が必要であること。capybara-webkitのインストールが一日半たっても終わらない(結局、gem install capybara-webkitの実行については経過がプロンプトに表示されないまま二日が経過した。qtをインストールしなおして再度実行したら数分で終わったorz)こと、など。

プログラミング言語にこだわらないならば、 『Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド』の方が情報の鮮度的におすすめである。
おそらく本書を参考にしたのであろう、構成内容は似ており、本書で得られるスクレイピング的知見は得られると思われる。


以下蛇足。
Pythonの習得レベルを2、Rubyの習得レベルを1とする者が両者を比較すると、PythonよりRubyの方が書きやすいような気がするが、実行はPythonの方が早くて、総合的にPythonの方が好ましいという印象である。
クローリングについては、どちらがより優れているという印象はない。

2017年2月 9日 (木)

読物 『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に限らず、AWSのUbuntuでも同じだった)。
プログラムなど問題なく動作するので気にせずにいたが、第7章でハマるので、仮想環境構築の復習を望まない場合はあらかじめなんとかして3.5.1等をインストールしておくのが吉かもしれない。venv作成時も『python3.5 -m venv hogehoge』とする必要がある。

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

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

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

2017年2月 6日 (月)

映画 『LUPIN THE ⅢRD 血煙の石川五ェ門』

劇場版とかスペシャル版のルパンに興味を失って久しい。最後に楽しんでみたのは『風魔一族の陰謀』だったような気がする。

本作品もだから興味を持てなかったのだが、CMを幾度か目にするうちにその気になって、ついには見る気になった。

こういう作品をTVで見ることができていたのは幸せだったのだなあと思いつつ、この作品はTVで見ることはできまいと思い、このような形での一般公開が妥当なのだと頷く。
この系が好きな人には薦められる良作といえよう。

公開中ゆえ内容には触れぬが、製作スタッフに『デュエリスト』という映画を見た方がいるのではないかと思ったり思わなかったり。アレは実に痛そうに見える。

客層としておっさんたちはデフォだろうからおいとくとして、若いお嬢さんが一人いたのはちょっと驚いた。ファン層は決して狭からぬというところか。
おっさんとしては本作品がまとうなんとなく昭和なカンジに違和感はないが、若い人はこれをどう見ているのか気になるかもしれない。

スタッフロール見るまで、五ェ門の声、番長がやってるってわからなかったヨ。

« 2017年1月 | トップページ | 2017年3月 »

フォト
無料ブログはココログ

最近のトラックバック