或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

クローラー開発技法のPython版 #Python #Ruby #クローリング

そんなこんなを漠然と思っていたのですが、まさか自分が同じような本を書くことになるとは、夢にも思っていなかったです。自分の本の寿命がどれくらいなのか解りませんが、同じように誰かの参考になってくれれば幸いです。そして誰か、Python版を書いてくれないかなぁと思います。
Spidering hacksと私 - プログラマになりたい

Amazonで購入しました

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

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

予約の段階でランキングが偉いことになっていましたね!レビューも無しの段階で1000位くらいっていうのがすごい!

自分は、何も考えずポチッと予約して買いました。

何故購入するに至ったかというと、((なんだ、結局考えて買ったんじゃないか?!)

共著のるびきちさんの本を読んだことがあった。

こういうTipsというかHacksの類の本が好きなんです。

クローリングという題材

類書にSpidering hacksっていうのもあるが、これは題材が古い!2004年著だもんなぁ。もちろん、私は購入しましたよ。でも、Yahoo!ポータルサイトからコンテンツを引っ張ってきて、perlでごにょごにょやるっていうのは、最近この分野にハマり出した私には荷が重い。題材も古いし、perlも使いづらいし。CPANのモジュールも仕様変更されたり内容が古くなったりしているし。何より、私はPython使いだし。。。ということで、この本はもっぱらバイブル扱い。聖書のように、あれやこれや調べながら、その言わんとしていることを察し、それをPythonで書き直すという作業をやってやりたいことを実現しておりました。

購入して実際に読んでみての感想は、Spridering hacksと比して、「Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 」では、ずっと新しいコンテンツを題材に、ごにょごにょやるので、遊びがいがある。Amazonランキングをごにょごにょしたり、twitterやらfacebookでごにょごにょしたり、Yahoo!のコンテンツをいじるよりもずっと今風のことを題材にしているのが遊んでいて楽しい。

安い!

クローリングって、お金のかからない道楽だと思うんですよね。Linuxで環境作れるし、*1ツールも無料で調達出きるし。その上、「Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 」は、3000円ちょっとで購入出来ちゃう。これはやすい。技術書って、平気で5000円とか越えてくるのだが、5000円を越えるとワンポチで購入するには躊躇してしまう。3000円くらいとなると、即買いです。

購入してみての感想ですが、この値段でこの内容は買いです!!!

まぁ、余談ですが、神の見えざる手により、在庫切れになり、中古出品者が高い値段をつけて出品しているようですね。。。中古で、5000円くらいで取引されているようです。神の見えざる手も伊達じゃないですね。それなりの適正価格くらいまでに押し上げているような気がする。

クローラー開発技法Python

Spridering hacksがクローラー開発技法perl版、CPAN版だとしましょう。「Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例」は、Spidering hacksを意識して書かれたとのこと。Spidering hacksのRuby版とも言えるでしょう^^;

両方読んで見ればわかるんですが、クローラーを実装するには、Rubyでやったほうがやりやすいです。ソースも読みやすいし、Rubyはやっぱりフルスタック言語っすからね。クローリングして、スクレイピングして、データをDBにぶっ込むとかいう処理を実装するのに、必要なライブラリがいろいろ揃ってる。それでいて、sqlを上手いことラップしてくれるAPIもあったりするので、実装が本当に楽。sql文書かなくてもいいやり方もあるくらいだし!

んで、その流れからの、、、

そして誰か、Python版を書いてくれないかなぁと思います。

PythonにもScrapyっていうnokogiriにも勝るとも劣らないライブラリ(フレームワーク?)があるので、やってやれないことはないと思います。私はちょっとやってみたのですが、今のところRubyでやったほうが楽ですね。

Pythonって日本語の情報が本当に少ないですよね。Perl/Rubyと比較すると悲しくなるほど。言語としては、素晴らしい言語だと思うんですが、情報の有無って重要。最近の流れからすると、何かやりたいことがあったら、やりたいことを上手い具合に実現してくれるライブラリやらAPI探して、それを叩いて終わりっていうパターンが多い。その点、Pythonは不利!おそらく、ライブラリもあるんだろうけど、「実例」が無いんですよね^^;

*1:Windows購入する必要がない