無料で使えるスクレイピングツール「Octoparse」の使い方。コードを書くことなく自由度の高いデータ収集が可能。

**この記事はただのシェアです。元記事は[ここ](https://nelog.jp/octoparse)です。**
記事の内容は以下の通りです。

![mockDrop_Thunderbolt-display-on-a-table.jpg](https://qiita-image-store.s3.amazonaws.com/0/251056/510993c9-9b67-98d2-219a-766c01440c7a.jpeg)

以前、サイトスクレイピングツールのimport.ioを紹介しました。
import.ioは、URLを入力するだけでサイト上のデータを自動的に判断してデータ化してくれる便利なWEBサービスでした。
けれど、データ化したい箇所を詳細に設定するのには、向いていませんでした（WEBサイト上のツールでは）。

それで先日、[Octoparse](http://jp.octoparse.com)というツールを教えてもらい、使ってみたところ、結構手軽ながら詳細にスクレイピングする箇所を設定できるツールだったので紹介です。

# Octoparseとは
![Free-web-scraping-Data-extraction-Web-Crawler-Octoparse-Free-web-scraping.png](https://qiita-image-store.s3.amazonaws.com/0/251056/69e6a406-98d8-b695-9fbe-31c493fef829.png)


[Octoparse](https://www.octoparse.com)は、どんなWEBサイト上のデータも手軽に抽出することができる無料スクレイピングツールです。

無料版だと、一部機能に制限がありますが、ヘビーユーズでもしない限りは、十分すぎるくらいの機能があります。無料版と有料版の違いについては、[Pricing](http://www.octoparse.com/pricing)を参照してみてください。有料版だと、タスクの登録数や自動実行数が多くなり、クラウド上で動作させることもできます。

実際に使ってみた感じでは、視覚的に分かりやすくデータ抽出箇所を設定することができ、実行することができるツールになっています。

例えば以下のようなデータ抽出なら簡単にできてしまいます。

- 単一ページ上のデータを抽出する
- ページネーションを移動しながらリストデータを取得する
- リストのリンク先もたどって取得する
- URLを複数指定して全てのページから指定したデータを取得する

Octoparseは、上記のように様々なスクレイピング方法を利用する事ができますが、以降では一般的なデータ抽出方法を紹介したいと思います。

# Octoparse利用の主な手順
Octoparseを利用するには、主に以下の手順が必要です。

- Octoparseに登録する
- Octoparseのダウンロード
- Octoparseのインストール
- Octoparseでデータ抽出
以下では、それぞれの手順について詳しく紹介したいと思います。

# Octoparseに登録する
Octoparseは、無料から利用できるツールではありますが、ツールを使用するにはOctoparseへの無料登録が必要です。

まずは、[Octoparse](https://www.octoparse.com)の「Sign up」をクリックしてください。
![Octoparse_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/c6b20226-1c1d-7ac1-ce65-d4e223aaa33a.png)


「ユーザーネーム」、「パスワード」、「メールアドレス」を入力して登録作業を行ってください。
![Octoparse_thumb-1.png](https://qiita-image-store.s3.amazonaws.com/0/251056/8f9bcde3-54f1-d207-4196-226f66f2bbeb.png)

アカウント情報登録したら、メールが届くので、確認用のリンクをクリックしたら登録完了です。
![thumb-77.png](https://qiita-image-store.s3.amazonaws.com/0/251056/4e10d46f-b0e7-8444-892c-fafc5c48e53f.png)


# Octoparseのダウンロード
ダウンロードは、[Octoparse free download](https://www.octoparse.com/download)から行うことができます。

ブラウザでダウンロードページを開いたら、「Download」ボタンを押して「From Dropbox」と書かれているアイコンをクリックしてください。
![Dropbox_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/f7a48fb2-dc96-4044-4508-c59f73a9a1e8.png)

すると、Dropbox上に以下のようなOctoparseのダウンロードページが表示されます。

![DropboxOctoparse_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/982f7dc3-cc6f-e5c4-93c6-2d54ff3363e6.png)

ダウンロードページ右上にある「ダウンロードボタンの▼」をクリックして「直接ダウンロード」を選択してください。

![DropboxOctoparse_thumb-1.png](https://qiita-image-store.s3.amazonaws.com/0/251056/38e951d7-b222-3a13-2a7a-8149a3ee9f8c.png)

すると「Octoparse V6.0Setup.zip」のようなファイルがダウンロードされます。

![Octoparse-V6.0Setup.zip_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/c76376c7-e127-481c-d17f-78e0d9ab25ff.png)

ダウンロードが終了したら、ZIPファイルを展開（解凍）しておいてください。

# Octoparseのインストール
展開（解凍）後のフォルダに「setup.exe」というファイルがあるので起動します。

![thumb-78.png](https://qiita-image-store.s3.amazonaws.com/0/251056/abb25d86-93c5-5940-cfc6-5dad9dea5b69.png)


すると、以下のようなOctoparseのインストーラーが起動するので、基本的に「Next」ボタンを押していけばインストールは終了します。

![Octoparse_thumb-2.png](https://qiita-image-store.s3.amazonaws.com/0/251056/c87aa180-8da1-2b36-a39a-2d108eff743e.png)


このインストーラで、変更できる箇所といえば、「Install場所」くらいなもんなので、特に難しい設定はありません。

# Octoparseでデータ抽出
Octoparseのインストールが終了したら、以下のようなショートカットがデスクトップ上にあると思うので起動します。

![Octoparse_thumb-3.png](https://qiita-image-store.s3.amazonaws.com/0/251056/1de1d375-0de6-5165-51c3-46c9b1991d2c.png)

## Octoparseにログイン
すると以下のようなログインダイアログが表示されるので、登録時に入力した「ユーザーネーム」と「パスワード」を入力して「Login」ボタンを押してください。

![Octoparse_thumb-4.png](https://qiita-image-store.s3.amazonaws.com/0/251056/d9645862-f4e7-0b9c-4a9e-586552d2bba2.png)


すると、以下のようにOctoparseが起動します。

![Octoparse_thumb-5.png](https://qiita-image-store.s3.amazonaws.com/0/251056/8fde3796-edaf-e521-a62b-73f774202e25.png)


*初回起動時はユーザーガイド画面が表示されると思いますが、上記はそれを閉じた状態です。*
## Octoparseでデータを抽出
Octoparseでは、様々なデータ抽出方法があるのですが、今回はその中から最も一般的な「リスト状となっているコンテンツからデータを抽出する方法」を紹介したいと思います。

Octoparseには、ウィザード形式で抽出データを指定する「Wizard mode（ウィザードモード）」と、自由に抽出データを指定できる「Advanced mode（アドバンスドモード）」がありますが、今回は初めての場合でも手軽に行えるウィザードモードの利用方法を紹介します。

まずは「Wizard mode（ウィザードモード）」の「Start」ボタンをクリックしてください。

![Octoparse_thumb-6.png](https://qiita-image-store.s3.amazonaws.com/0/251056/8bb7e516-1461-ccba-8b7b-19ed53712df6.png)


「List or Table Extraction」項目の「Create」ボタンを押してください。

![List-or-Table-Extraction_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/1345f64b-4d0b-8a6e-54d8-e71defc930ae.png)


*もしかしたら初回起動時、「List or Table Extraction」のチュートリアルが表示されるかもしれませんが、そのチュートリアルは終わったものとして説明します。*
## タスク名を入力
まずは、タスク名をつけて「Next」ボタンをクリックします。

![thumb-79.png](https://qiita-image-store.s3.amazonaws.com/0/251056/ab264040-dc55-39a8-6151-db2420a829b8.png)


## 抽出ページのURLを入力
次に、スクレイピングするページのURLを入力して「Next」ボタンを押します。

![2016-07-19_12h05_36_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/715c3f25-1269-988a-4700-eef6545e1da6.png)
 

*今回は、「[当サイトの記事一覧リスト](https://nelog.jp)をスクレイピングすること」を例に紹介します。*

すると以下のように、ブラウザコンポーネント部分にページが表示されます。

![thumb-80.png](https://qiita-image-store.s3.amazonaws.com/0/251056/b5fb9c8e-cf9f-0a3d-f4e8-fbbd3ac34cee.png)


## リストの定義
次にリストの定義を行います。

リストの定義は、リストデータとなるHTML要素を2つを選択することで行います。

リストデータ部分のHTML要素上にマウスオーバーすると、以下のように背景が水色に表示されるのでクリックして選択します。

![1_thumb-3.png](https://qiita-image-store.s3.amazonaws.com/0/251056/27ada474-068e-b5f7-1b9c-4b931af6fc52.png)


1つ目のHTML要素を選択すると、要素内の情報が上部情報欄に加えられます。

![1HTML_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/de4c128c-5f80-df4e-a116-d884614ec07d.png)


次に、2つ目のリストデータとなるHTML要素を1つ目と同様に選択します。

![2016-07-19_12h07_11_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/d976f954-da5d-4d6d-ff72-81539ed6ca80.png)


2つ目のリスト要素を選択すると、ツールに法則性が伝わるので、全てのリスト情報が抽出されます。

![2_thumb.png](https://qiita-image-store.s3.amazonaws.com/0/251056/dd5da2b2-9118-cf86-11ec-4bfbfdc35c90.png)


リスト要素を選択し終わったら、「Next」ボタンをクリックしてください。

![thumb-81.png](https://qiita-image-store.s3.amazonaws.com/0/251056/06e8c324-b9a8-44b8-6b3b-849e018feffd.png)


## 抽出するデータの選択 & ページネーションの設定 & タスクの実行を行う
画像のアップロードには故障になってしまったので、この三つの部分は[元記事](https://nelog.jp/octoparse#Octoparse)をご覧ください。



# まとめ
Octoparseでは、このように（プログラムでスクレイピング処理を書くよりは）かなり手軽に思い通りのスクレイピングを行うことができます。

僕はこれまで、Rubyでスクレイピングコードは書いたことがあります。Rubyには、Nokogiri＆Mechanizeという便利なライブラリがあって、ある程度手軽にスクレイピング出来るようにはなっています。

ただそれでも、コードがどういった振る舞いを行うか処理を書いたり、データの取得箇所をCSSセレクター（もしくは、Xpath）で指定したりする必要があり、やはり手軽に「やろう！」という気にはなりません。

今回紹介したOctoparseを利用することで、複雑なコードは一切書く必要がなく手軽にスクレイピング処理を実行できるようになると思います（もちろんコードで直接書くほど自由度は高くないけど）。

というわけで、スクレイピングをしてサイトをデータ化したいけど「コードを書くのが面倒くさい」もしくは「コードを書けない」なんて場合には、結構重宝するのではないかと思います。

*サイトのスクレイピングは、スクレイピング先のサーバーに負荷をかけてしまいます。Octoparseを利用する場合は、節度を守ってご利用ください。また、サイトの利用規約などに「スクレイピング禁止」と書かれているサイトでのご利用は控えてください。*