目次
javascriptの特徴
javascriptはスクリプト言語ですが、サーバーサイドで作動するのではなく、ブラウザ上で作動します。javascriptの歴史は古いですが、昔のjavascriptはビジュアル面で活用されることが多かったと思います。
画像をランダムに入れ替えたり、文字を急に大きくしたり・・そんなjavascriptは、スクレイピングでも活用されるようになりました。しかしjavascriptによるスクレイピングには、メリットとデメリットがあります。
javascriptの難易度
スクレイピングをしたいけど、プログラム言語はまったくわからない。そのような人でも、javascriptだったら何とかなるかもしれません。
文法が比較的簡単なので、最初のプログラム言語にjavascriptを選ぶ人は多いです。
インターネット上にはjavascriptを解説したサイトが多くあり、不明点は検索すれば見つかりやすいです。
PHPやpythonでプログラムを組むときはアルゴリズムを理解する必要がありますが、javascriptだったら、サンプルを少し手直しすれば何とかなると思います。
javascriptでスクレイピングをするときはNode.jsを使うのが主流
javascriptでスクレイピングをするときは、Node.jsを使うのが主流になっています。以下では詳しく見ます。
Node.jsを使えばサーバーサイドでも作動する
通常javascriptはブラウザ上で作動しますが、Node.jsをインストールすればサーバーサイドでも作動します。サーバーサイドでも作動したら、スクレイピングはかなり効率化すると思います。
しかし現時点では、Node.jsが使えるレンタルサーバーはありません。レンタルサーバーが使えないのであれば、自由度が高いVPSサーバーと契約するしかありません。
有名なロリポップも、Node.jsが使えるクラウドサービスを提供しています。
Node.jsを使いスクレイピングする流れ
Node.jsでスクレイピングする流れは、他のプログラム言語と同じです。
- 対象のサイトのURLを調べる
- 対象のタグを調べる
基本的には上記の流れでいいですが、コードは以下のサイトを参考にしてください。
https://tenshoku-miti.com/takahiro/javascript-scraping/#toc5
スポンサーリンク
JavaScriptでスクレイピングを実行するメリットとデメリット
javascriptでスクレイピングをするメリットと、デメリットを考えます。
メリット:比較的言語構造が簡単
他のプログラム言語を使ったことがある人はわかると思いますが、javascriptの言語構造は比較的簡単です。また解説書が多いので、不明点の解決が早いです。スクレイピングをするときはpython、PHP、Rubyを使う人が多いですが、これらの言語を習得しようと思えば最低でも半年かかります。
しかしjavascriptは言語構造が簡単なので、早い人であれば二ヶ月程度で基本的なことは習得できると思います。最初の方でも解説しましたが、javascriptはコピー&ペーストをし、少し手直しをするだけでほぼ作動するので、プログラムに必要なアルゴリズムを本格的に学ぶ必要はありません。
デメリット:環境作りが必要
javascriptでスクレイピングをするときは、環境作りが必要です。現時点では、レンタルサーバーでNode.jsが使えるところはありません。そのためVPSと契約する必要がありますが、VPSの月額料金は高めです。
VPSをレンタルしても、環境の構築は自分でする必要があります。VPSに慣れている人であれば何とかなると思いますが、VPSに慣れていない人は悪戦苦闘すると思います。
結論:環境が用意できない人はサーバーサイドスクリプト言語が良い
javascriptでスクレイピングをするメリットとデメリットを紹介しましたが、環境が用意できない人は、最初からpython、PHP、Rubyを使った方が良いと思います。初心者にはpythonがおすすめです。
ただpythonを提供しているレンタルサーバーは比較的少ないので、レンタルサーバー選びに困るかもしれません。私のおすすめはロリポップです。ロリポップは簡単にpythonが作動する環境を用意しているので、開発者は楽だと思います。
私はロリポップでpythonを動かした経験がありますが、呆気ないほど簡単にpythonのプログラムは作動しました。pythonを深く学ぼうと思えばアルゴリズムの習得が必要ですが、文法そのものはjavascript並の簡単さです。
これからのスクレイピングはノンプログラミング
あくまでも個人的な意見ですが、これからはプログラミング不要なスクレイピングツールが主流になると思います。以下ではその理由を紹介します。
スクレイピングの仕組みは比較的簡単
スクレイピングの仕組みそのものは簡単です。具体的には該当するタグを見つけ、タグ内に書かれたテキストデータなどを取得するだけです。
仕組み的には簡単なので、今後はweb上で実行できるスクレイピングツールが増えると思います。web上でスクレイピングツールを構築するにはサーバサイドのプログラム言語だけではなく、javascriptも必要ですが、既存の技術の組み合わせで十分に実現できると思います。
ブラウザに組み込める
chromeを利用している人は知っていると思いますが、chromeには拡張機能があります。拡張機能の中には、スクレイピング関連のものもあります。
利用者は拡張機能をインストールするだけなので、プログラミングの知識はまったく必要ありません。
開発する側はさまざまな言語が使えるので、今後は柔軟性のあるスクレイピングシステムが登場するでしょう。
スポンサーリンク
Bright Dataのデータコレクターが一番便利
ノンプログラミングでスクレイピングをするときは、Bright Dataのデータコレクターが便利です。理由を紹介します。
スケジュール機能が優れている
データコレクターはフィルター機能だけではなく、スケジュール機能も充実しています。開始時間と終了時間だけではなく、曜日指定もできます。また一時間おきに作動させることも可能です。
スクレイピングは毎日するのではなく、定期的に実行した方がいいと思います。毎日実行したら、対象のサイトに迷惑がかかる可能性があるからです。そうであれば日を置き実行するしかないですが、時間管理が面倒くさいですよね。
データコレクターのスケジュール機能を使えば自動的に実行してくれるので、他の業務をしていてもまったく問題はありません。スケジュール機能のメリットは本当に大きく、寝ている間も作動させることができます。
外国のサイトをスクレイピングするときに便利
Bright Dataは世界10ヶ国にデータセンターを置いていますが、外国のサイトをスクレイピングするときは、現地のIPアドレスを使うのが基本です。現地のIPアドレスを使えば怪しまれないので、ブロックされる可能性が低くなるからです。
IPアドレスの指定はプロキシマネージャー経由でできるので、IPアドレスの乗り換えは非常に簡単ですよ。プロキシマネージャーはBright Dataの操作を簡易化させるツールで、Bright Dataと契約したら無料で使えます。
まとめ
javascriptでスクレイピングをするメリットとデメリットを紹介しましたが、現時点ではデメリットの方が多いと思います。しかしjavascriptの開発環境は年々便利になっているので、今後はメリットの方が大きくなるかもしれません。
現時点で一番便利なスクレイピングツールは、Bright Dataのデータコレクターです。Bright Dataは一ヶ月単位で契約できるので、一度データコレクターの便利さを試したらどうでしょうか?最初は少し勉強が必要ですが、使い慣れたら便利さがわかりますよ。