・この記事の概要
様々なスクレイピングソフトについて解説しているページ。
今回紹介しているのは
・Octoparse(オクトパス)
・KNIME(ナイム)
・Python(パイソン)+Selenium(セレニウム)
になります。
そのほかの代表的なノードの一覧はこちら。
まえがき
どうもシャイン社員です。
左腕を骨折しているシャインですが
上司から「来週会社来れる?」と打診を受けまして…
仕方なしに出社することになりました。
うう…
自宅から職場までは公共交通機関はないのでタクシーかなぁ…
スクレイピングするソフトを比較してみた
今回はスクレイピングできるソフトウェアをいくつか比較しましたので
その結果を紹介します。
早速ですがスクレイピング比較結果を示します。
あくまでも個人的な見解が多分に含まれますのでご容赦ください。
| Octoparse | Python | KNIME | KNIE+Python |
無償/有償 | 無償版あり 基本有料 | 基本無償 | 基本無償 有料版あり | 基本無償 有料版あり |
無償版の制限 | 作成できるタスク制限あり | 特になし | 特になし | 特になし |
コーディングの必要 | 不要 | 必須 | 不要 | 一部必要 |
環境整備の難易度 | 簡単 | やや難 | 簡単 | 難しい |
XML(Xpath)の知識 | 不要 | 必須 | 基本知識は必要 | 基本知識は必要 |
使い勝手など | とても良い。ほぼGUIで完結できる。コードとかXMLとか何も意識しなくてよい。 | コーディングが必要だが応用が利く。 ネットに情報が多いのでスキル習得は楽。 | コーディングは必要ないがKNIMEの使い方とXMLの知識が必要。Webpage-retrieverのXML抽出が微妙なのが難点 | KNIMEとPythonを両方使える人向け。データの前後処理をKNIMEで、スクレピングをPythonですると◎ |
総合評価 | 初心者向け 非エンジニア向け | 上級者向け | 中級者向け | 中級者向け |
それでは各スクレピングソフトについて見ていきましょう。
Octoparse
簡単な操作で誰でも簡単にスクレイピングをすぐに行うことができます。
起動画面はこんな感じで、テンプレートとしてたくさんのサイトをすぐに行えるように
なっています。
クリックを数回していけばあっという間にスクレピングができてしまいます。
うひょー!すごい簡単にスクレイピングできたー!
料金プランは下記のようになっておりフリーでもかなりスクレイピングをするには
かなり使えると思います。
Octoparseのメリット
本当に簡単にスクレイピングできるので、スクレイピング初心者や
非エンジニアの方にオススメです!
フリープラン(無償版)でもスクレイピング出力をローカルに保存することができるので
すぐにスクレイピングを実施し保存したい場合は役に立ちます。
また環境の整備もOctoparseをインストールするだけなので非常に楽です。
Octoparseのデメリット
無償版ではスクレイピングのタスク(プロジェクト)がに限りがあります。同時に実施できるスクレイピングは2つまで、保存できるタスクは10個までです。
また定期実行やテンプレートタスクの実行は有償版でないとできません。
これはスクレイピングのスキルを習得したい人向けの話ですが
あまりにも簡単にスクレイピングできるので
コーディングのスキルやXPathの知識は身につきません。
スクレイピングを勉強したい人向けではないといえます。
Python
言わずと知れたPythonによるスクレイピングです。
Python単体ではスクレイピングができないので
スクレイピングに必要なライブラリである「Selenium」や「BeautifulSoap」などを
Python上で動かしてスクレイピングします。
下記のサイトではPython+Seleniumでスクレイピングの方法を紹介しております。
SeleniumとChromeDriver SeleniumはWebブラウザで行うクリック操作やキーボード入力などをプログラム上から自動で操作できるようにしたライブラリでChromeDriverはCh
PythonでSeleniumを使ったWEBスクレイピングの方法を初心者向けに解説した記事です。インストール方法やXPathを用いた要素の指定方法、ログイン方法など、これだけを読んでおけば良いよう、徹底的に解説しています。
必ずコーディングが必要となるため
Python言語におけるプログラミングスキルが必須となります。
Pythonのメリット
Pythonを使ったスクレイピングを紹介しているサイトは豊富にあるので
ネットで検索すれば情報はたくさん出てきます。
また自分でプログラムをカスタマイズすることで
自分が求める動作に最適なプログラムを作ることができます。
Pythonは動作をサポートしているプラットフォームが多数存在するため
他のプラットフォーム上から動作させることもできます。
Pythonのデメリット
スクレイピングを初めてやる人にとってはプログラミングが必須のため難しいです。
また環境構築やWebdriverの準備など使用環境の整備がやや手間です。
Pythonのプログラム言語習得のために行列構造などを理解しないといけないため
スクレイピングだけを行いたい場合はハードルが高いと思います。
KNIME
KNIMEはもともと表計算ソフトのようなものでエクセルに似ている部分もあるんですが
スクレイピングも可能です。
KNIMEは下記のように処理を行うノード(箱のようなもの)を線で繋いで
ワークフローを作り様々な処理ソフトウェアです。
KNIMEについて詳しい紹介は下記の記事からどうぞ。
本ページはKnimeの使い方やできること、などについて説明しています。Knimeはエクセルと同じように表計算ができる無償ソフトウェア
エクセルと違ってVBA記述など不要でマクロをどうさせることが来ます。
ワークフローと呼ばれるカラフルな四角いマークと矢印をつなぐことで動かす
本ページはKnimeの導入に関して説明したページです。ダウンロード、インストール方法の紹介を記しています。また最初の設定やワークフローの作成方法などを紹介しています。
Knimeの日本語化パッチはありますが高額なので私としては必要はないかなと思います。
文末にキャンプ用品を紹介しています。
KNIMEでスクレイピングを行う方法については下記の記事で
紹介しておりますのでご覧ください。
ノーコードスクレイピング(クローリング)する方法を解説しているページです。まずはWebpage Retrieverの設定方法を主に解説しております。FANTOM-06が発売。スクレイピングやクローリングはやり方を間違えるとサーバーに過度の負荷を与えてしまう場合や、著作権侵害、利用規約違反に反する
KnimeのXPathノードの使い方を主に解説しております。
スクレイピング(クローリング)する方法も解説しています。スクレイピングやクローリングはやり方を間違えるとサーバーに過度の負荷を与えてしまう場合や、著作権侵害、利用規約違反に反する可能性があるので使用には十分注意してください。
KNIMEのメリット
ワークフローによりスクレイピングを処理することができるので
ノンコードで簡単にスクレイピングできます!
またKNIMEの環境構築もKNIMEのソフトウェアをインストールだけで完了できます!
定期実行もwindowsのスケジューラー機能で実現することができます。
複数ページのスクレイピングも簡単に行うことができます。
スクレイピングのためのノードも最小限で3つなので下記のように
簡単に組むことができます。
後述するKNIME+Pythonによるスクレイピング環境にも比較的簡単に移行できます。
KNIMEのデメリット
KNIMEに搭載されているスクレイピングノード「Webpage-retriever」の動作に
やや難点があります。
普段利用しているChromeなどのブラウザとは違うブラウザのため
抽出されるXMLが微妙に異なるため、Xpathの設定が大変です。
一部Cokkieが必要なページなどは旨くスクレイピングできません。
(ノード設定にはCookieのオプションがあるのになぜかうまくいかない…)
またXpathノードによる抽出が必要なためXMLの知識が少なからず必要になります。
KNIME+Python
KNIME+Pythonとの組み合わせでKNIME単体のWebpage-Retrieverノード
スクレイピングよりもより便利なスクレイピングが可能になります。
実際にはKNIME上でPythonノードを動作させ
Python上でSeleniumやBeautifulSoapなどを使ってスクレイピングさせます。
行列生成や前処理、後処理をKNIMEで実施できるため
Pythonで行うスクレイピング処理のプログラミングは
Python単体でスクレイピングを行う時に比べて比較的少量のコーディングで済みます。
KNIME+Pythonのスクレイピング方法は下記のページでご紹介しております。
ご興味があればぜひご覧ください。
今回はKnimeでPythonを利用する方法についてご紹介します!
Knimeではノンコードで行列の計算処理や分析を行うことができます。同様にPythonでもコードを書いて表計算や解析を行うことができます。Pythonノードは初期のKnimeには搭載されていないノードになるため
今回はKnimeを使用してスクレイピングをする方法をご紹介したいと思います。
以前の記事でKnimeのWebpage retrieverでもスクレイピングは可能ですそこで今回はPythonのライブラリの1種である「Selenium」を用いて
スクレイピングをする方法をご紹介したいと思います。
KNIME+Pythonのメリット
行列生成や前処理、後処理をKNIMEで実施できるため
Pythonで行うスクレイピング処理のプログラミングは
Python単体のスクレイピングにくらべてコーディングの量が少なくて済みます。
スクレピング以外の処理ついてはKNIME側で可能なため
全体的にローコーディングでのスクレイピングが可能です!
KNIME+Pythonのデメリット
Pythonでの環境構築と同様にライブラリの導入とwebdriverの導入など
開発環境の設定に時間がかかります。
XPathの知識も多少必要となります。
更にそれに加えてKNIME上でPythonを動作させるための設定も必要です。
難しくはないですが、多少時間がかかります。
スクレイピングを行う際の注意事項
スクレイピングやクローリングはやり方を間違えるとサーバーに過度の負荷を与えてしまう場合や、著作権侵害、利用規約違反に反する可能性があるので注意が必要です。
スクレイピングやクローリングにより損害が発生した場合でも、当ブログでは責任を一切負いません。
詳細は下記ページに詳しく書いてあるのでご確認ください。
あとがき
いかがでしたでしょうか?
ご紹介した方法以外でもいろいろなツールやソフトがありますので
様々なものを試してみて自分に合うものを探してみてください!
それでは!
0 件のコメント:
コメントを投稿
ここにコメントを書いてね!