或阿呆のブログ

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

スクレイピングするなら何言語?スクレイピングをするのにWindowsPowerShellってのも意外といけるかもしれない!

2017/3/24 Pythonの紹介書籍を追加。

何言語でスクレイピングをするか?

以前は、スクレイピングをするには、Perl,Python,Rubyあたりを使っていた。JavaScriptVBAってのも意外とありだと思う。。。
それぞれ、私なりの見解と参考書籍を挙げておきます。

Perl

一番歴史があると思われる。やろうと思うことを実現する道具は一通り揃っている。が、CPANのライブラリ頼みになってしまうので、開発中止になっているモジュールも多々ある。参考書籍もやや古い。今からスクレイピングをやろうとするなら、Perlを選択するのは良い選択ではないと思う。

以下は文句なしの名著なんだけど、いかんせん、古すぎる。

Python

スクレイピングするのに使えるライブラリがいくつかある。BeautifulSoupを使っておけば、何とかなる。お勧めの言語。参考書籍にまともなものが無かったので、Pythonを選択する人は少なかったかと思うが、以下の素晴らしい書籍が発売されたので、今後はもっと利用が増えるんじゃないだろうか?

待望の、Pythonで書かれたスクレイピングの書籍が続々と刊行

Ruby

Pythonと同様スクレイピングするのに使えるライブラリがいくつかある。Nokogiriは便利過ぎる。ただ、私はRubyの文法がわかりづらいし書きづらいので好きではない。やれることはPythonと同等だと思う。好みで、PythonにするかRubyにするかを選べばいいと思う。Rubyには神書籍がある。これさえ読んでおけば、スクレイピングのみならずクローリングの手法を一通り学べるんではないか。ここだけは、Pythonより明らかに優れている。

JavaScript

スクレイピングするのに使えるライブラリがいくつかある。だが、環境を揃えるのにかなり手間がかかる。ウェブページにスクレイピング結果を乗せたいなど、特段の事情が無ければ、PythonRubyにしておいたほうが明らかに無難だろう。以下の書籍は悪くないんだけどな~。かなり面白いんだけどな~。そもそも、スクレイピングをサクッとやりたいにも関わらず、こんなに面倒くさい作業が多いと萎える。

VBA

Webページのコンテンツを直接取ってくるのではなくて、IEのオブジェクトを使って間接的に取ってくる感じ。上述のスクリプト言語を使うよりかなり面倒くさい。ただ、スクレイピングで得た情報をエクセルの資料化するのが出来るのが利点。また、Excelが標準でインストールされている端末って多いから、環境構築は楽かも。

以下の書籍でも紹介されている。

WindowsPowerShell

Perl,Ruby,Pythonに比較して、ライブラリは多少貧相。でも、すごく小難しいことをやらん限り、十分足りるでしょう。Windows7以降は、標準でインストールされているから、環境構築は不要。ちなみに、取得結果をcvsに出力するなどが容易。今のところは、まだまだだが、今後に大いに期待できる言語だと思う。

それ用の書籍が無いのが残念。以下の書籍で、ちょっと言及されている。

これからはWindowsPowerShellでしょう。

だってさ、漫画喫茶とかネカフェでも、インストール不要で実行可能なわけじゃん。これはでかい。