【Parsers】Chromeの拡張機能を使ってお手軽にクローリング/スクレイピングをしてみる
分析の環境が整いつつある昨今で大事になってくるのが元となるデータです。そのデータをWebから収集する技術であるスクレイピングに、これまでも何度か挑戦してきましたが、思い通りの結果が出なかったり意外と労力がかかっていました。今回は、そんな少しハードルの高いクローリング/スクレイピングを、無料かつ簡単に行えるChromeの拡張機能「Parsers」を使ってやってみます。
Parsersとは
今回スクレイピングに使用する「Parsers」は、Google Chromeで使える拡張機能です。有料プランも用意されていますが、アカウントを作成するだけで無料で1サイトにつき1000ページまでのクローリング/スクレイピングが出来るとのことです。
▲料金体系。Maxプランだと10万ページまで可能とのこと。(公式サイトより)
Pythonを使ったスクレイピングに苦戦する部分もあったので、今回はfootballistaのWebサイトをクローリング/スクレイピングしてみたいと思います。
「Parsers」を使うとどう言ったことが出来るかというと、記事内に共通してある情報を自動で1000ページ分自動で集めることが出来ます。例えばfootballistaで言うと、記事タイトルや著者、記事のタグなんかを自動で収集してくれます。集めた情報はcsvやExcel形式で出力することも可能です。
▲記事フッダーにあるこういったタグを自動収集出来ます。
お手軽にクローリング/スクレイピングをしてみる
「Parsers」のインストール
Google Chromeで下記サイトへ行くか、公式サイト画面中央「ADD TO CHROME」または画面右上「DOWNLOAD」をクリックすることで「Parsers」のインストールページへと行くことが出来ます。
「Chromeに追加」ボタンを押せば準備完了です。
アカウントの作成
Chromeへのインストールが完了すると、ブラウザの右上にParsersのアイコンが出てくると思います。このままだと10ページ分しかクロールしてくれないので、無料のアカウントを作成して100倍クロール出来るようにします。
Parsersのアイコンをクリックし、「Sign Up it's free」をクリック。
メールアドレスとパスワードを入力して「Sign Up」をクリック。この時、Companyは空白でも問題なかったです。
これで1サイト10000ページまでスクレイピング出来るようになりました。
スクレイピングする要素の指定
次はParsersを使って取得したい要素を指定していきます。Parsesのアイコンをクリックして出てくる画面右上「Select mode」が、緑色と白色になっていることを確認します。この状態でWebページ上の取得したい要素にカーソルを当てると、その要素が緑色でハイライトされます。
意図した要素がハイライトされている場合はそのままクリックすることで、Parsers上にその要素から取得できる情報が表示されます。必要に応じて「Add new field」で取得できる要素数を増やし、同様の手順で指定していきます。
▲こんな感じで指定していきます。Whoscored.comなどサイトによっては取れない情報もありました。
実行
取得したい要素を全て指定できたら、「Start」をクリックして後は待つだけです。この待つ時間が想像よりはるかに長く、footballistaの情報取得するまでに丸二日間程度かかりました。(長い...!)
進捗状況に関しては上記画面の他、(これがまた分かりにくいのですが)公式サイト内プライシングページの画面左上「History」からも確認できます。(ログインの必要あり)
結果
進捗が100%にまで達したら、サイト名部分をクリックし「Download Data」へ行くことでデータのエクスポート等を行えるようになります。Parsersにはデータの可視化機能もあり、収集したデータをそのまま簡単に確認することが出来ます。
「Download Data」内グラフ部分の右側のリストを変更することで、グラフのx軸も変えることが出来るようになっています。
エクスポートの形式は、下記の4種類から選択出来ます。出力されるファイルは、空白行が多数ある少し使いづらいような形になっています。
以上、ここまでがChromeの拡張機能「Scrapers」の使い方となります。データの取得に2日かかったり、出力されるファイルが汚かったりしますが、労力をかけずにデータを取得する方法としては選択肢の一つになり得るクオリティだと思いました。
戦術や分析に関して、こういう見方もあるよ、こうして見た方がいいよ、などご意見等ありましたら、コメントで教えていただけると幸いです。ぜひよろしくお願いいたします!