Python vs Octoparse!初心者向けのタウンワーク(TOWNWORK)スクレイピング方法はどっち?

膨大な数の求人情報が掲載されているタウンワーク。目的の求人情報を効率的にリスト化できる方法をご存知でしょうか? 

その方法を「Webスクレイピング」と呼びます。Webスクレイピングを実行するやり方は2通りあります。

1つ目は、「Python(パイソン)」というプログラミング言語を用いてプログラムを作るやり方。そして2つ目は、「Octoparse(オクトパス)」というWebスクレイピングを作るやり方。

今回は、PythonとOctoparseはどちらが初心者向けのやり方なのか?を知っていただくために、両者のWebスクレイピングを比較します。

Webスクレイピングに興味がある方はぜひ参考にしてみてください。

目次

PythonでTOWNWORKをWebスクレイピングするやり方

OctoparseでTOWNWORKをWebスクレイピングするやり方

Webスクレイピング初心者ならOctoparseが断然おすすめ

PythonでTOWNWORKをWebスクレイピングするやり方

PythonはWebスクレイピングを実行するためのライブラリ(既存のプログラム)が豊富なプログラミング言語であり、ほとんどの場合、WebスクレイピングはPythonを使って実行されています。

それでは、Pythonを使ってTOWNWORKをWebスクレイピングするやり方をご紹介します。

ちなみに今回はMacを使用しますが、Windowsでもほとんど同じ手順でPythonが使えるので、Windowsユーザーは「Pythonを使ったWebスクレイピングはこういう作業が必要なんだな」と参考にしていただければと思います。

1. Pythonの環境を整える

Macのターミナルを開いたら以下のコマンドを実行して、パッケージのインストールや管理が可能な「Homebrew(ホームブリュー)」をインストールします。

 

$ /bin/bash -c "$(curl -fsSL

https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

パスワードの入力を求められた場合は、入力後にEnterキーを押下してください。

次に、Homebrewの機能を使ってPythonの実行環境をインストールするために、以下のコマンドを実行してください。

$ brew install python

これでPythonの最新バージョンがインストールされます。以下のコマンドを実行して、Pythonがインストールされているか確認してみましょう。

$ python ―version

バージョン情報が表示されれば、Pythonは正常にインストールされています。また、pipと呼ばれるライブラリ管理ツールもインストールされているか、以下のコマンドを実行して確認してみてください。

$ pip ―version

バージョン情報が表示されればpipも正常にインストールされています。

2. 必要なライブラリをインストールする

Webスクレイピングを実行するにあたって必要なライブラリが3つあります。

ライブラリ

役割

Requests

Webスクレイピングに必要なHTMLやXMLといった情報をWebページから取得する

Beautiful Soup4(bs4)

Requestsで取得したHTMLやXMLから必要な情報を抽出する

Pandas

Beautiful Soup4で抽出した情報を見やすい形に加工する

pipコマンドを使って各ライブラリをインストールします。

Requestsをインストールするコマンド

$ pip install requests

 

Beautiful Soup4(bs4)

$ pip install beautifulsoup4

 

Pandas

$ pip install pandas

ここまでの作業でWebスクレイピングを実行するための環境が整いました。

3. Webスクレイピングを実行するプログラムを作成する

さて、ここからが問題です。Webスクレイピングの実行環境を整える作業は、多少の躓きはあっても初心者でも完了できます。

しかし、Webスクレイピングを実行するためには以下のようなプログラムを作成しなければいけません。

import requests

from bs4 import BeautifulSoup

import pandas

 

def get_items(url, df, columns):

    res = requests.get(url)

    res_text = res.text

    soup = BeautifulSoup(res_text, "html.parser")

    ret = soup.find_all("div", class_="job-lst-main-cassette-wrap")

    ret.pop(0) # 最初と最後の要素は広告なので削除

    ret.pop(-1)

    for item in ret:

        rid = item.find("a", class_="job-lst-main-box-inner").get("href")

        company = item.find("h3", class_="job-lst-main-ttl-txt").text.strip()

        title = item.find("p", class_="job-lst-main-txt-lnk").text.strip()

        trs = item.select("tr.job-main-tbl-inner > td > p")

        salary = trs[0].text

        access = trs[1].text

        term = trs[2].text

        try:

            timelimit = item.select_one("p.job-lst-main-period-limit > span").text

        except AttributeError:

            timelimit = "不明"

 

        print("{0}番目の情報({1}):{2}をDataFrameに追加します...".format(len(df)+1, rid, title))

        print("会社名:{0} タイトル:{1} 給与:{2} 交通:{3} 勤務時間:{4} 掲載終了日時:{5}" \

              .format(company, title, salary, access, term, timelimit))

        se = pandas.Series([rid, company, title, salary, access, term, timelimit], columns)

        df = df.append(se, ignore_index=True)

    return df

 

def main():

    url = "https://townwork.net/joSrchRsltList/?fw=プログラミング"

    columns = ["rid", "company", "title", "salary", "access", "term", "timelimit"]

    df = pandas.DataFrame(columns=columns)

    results = get_items(url, df, columns)

    print(results)

 

if __name__ == '__main__':

    main()

このプログラムを作成するにはプログラミングを行うための「コードエディタ」をインストールする必要があり、さらにコードごとの役割を理解しなければいけません。

上記のプログラムをコピペして利用することも可能ですが、それではTOWNWORKでしかWebスクレイピングを実行できないため、実用性に乏しくなってしまいますね。

Webスクレイピングを実行するにはPythonでプログラムを作る必要があり、それがなかなか大変な作業だということをご理解いただけたのではないでしょうか。

注:コードのソースはみゃふのPythonプログラミング解説の公開記事を参考にさせていただきました。

OctoparseでTOWNWORKをWebスクレイピングするやり方

続いて、WebスクレイピングツールのOctoparseを使ってTOWNWORKをWebスクレイピングするやり方をご紹介します。

Octoparseは無料で使い始められるWebスクレイピングツールであり、初心者でも簡単にWebスクレイピングが実行できるのでぜひ挑戦してみてください。

1. Octoparseに登録する

まずは、Octoparseの無料アカウントを取得してみましょう。

Octoparseの新規登録ページに移動し、メールアドレス、ユーザー名、パスワードを入力し、業種を選択したら「登録」をクリックしてください。

設定したメールアドレスにOctoparseからメールが届くので開封し、「メールアドレスを認証する」をクリックしてください。

以上でOctoparseへの登録は完了です。

2. Octoparseをインストール&起動する

次にお使いのPCにOctoparseをインストールしていただき、起動しましょう。

Octoparseのダウンロードページに移動し、中央に表示されているバージョン番号をクリックしてください。

 

お手持ちのPCがWindowsの場合、Windows版のダウンロードページが自動的に表示される仕組みになっているので、上記と同じくバージョン番号をクリックしてください。

Octoparseをダウンロードできたらファイルを実行し、Octoparseを起動しましょう。するとログイン画面が表示されるので、先ほど登録したメールアドレスとパスワードを入力し、「ログイン」をクリックしてください。

 以上で、Octoparseを使ったWebスクレイピングの準備が整いました。

3. TOWNWORKのテンプレートタスクを使う

ここからがOctoparseのすごいところです。Octoparseでは、TOWNWORKから求人情報を収集するためのテンプレートタスクを用意しています。

Octoparseを起動したら検索欄に「タウンワーク」と入力し、表示されたテンプレートタスクをクリックしてください。

続けて「今すぐ使う」をクリックしてください。

パラメーターを設定するページが表示されるので、URL入力欄にTOWNWORKからコピーした検索結果ページのURLを入力し、「保存して実行」をクリックしてください。

最後にタスクの実行方法を選択する画面が表示されるので、ローカル抽出の「通常モード」をクリックしてください。

以上でWebスクレイピングの実行は完了です!

たったこれだけの作業でTOWNWORKから求人情報を取得し、自動的にリスト化することができます。あとはOctoparseのWebスクレイピングが終了するのを待つだけです。

4. 実行結果をダウンロードする

OctoparseのWebスクレイピングが終了すると、実行結果をダウンロードできる画面が表示され流ので「データをエクスポート」をクリックしてください。

「唯一データ」をクリックしてください。

任意のダウンロード形式を選択し、「はい」をクリックして実行結果をダウンロードしましょう。

ちなみにこちらがExcel形式でダウンロードした実行結果です。

Webスクレイピング初心者ならOctoparseが断然おすすめ

いかがでしょうか?Pythonを使ったWebスクレイピングと比較してみると、Octoparseは圧倒的に短時間でWebスクレイピングを実行できますね。

今回はTOWNWORKの求人情報をリスト化する方法をご紹介しましたら、Octoparseは他にもさまざまなテンプレートタスクをご用意しています。

また、URLを入力するだけでOctoparseがWebページを自動識別し、必要な情報をリスト化できるカスタマイズタスクの利用もおすすめです。

Octoparseが1つあれば情報収集の可能性が大きく広がるので、まだご利用されたことがない方は、この機会にOctoparseをぜひ使ってみてください。

関連記事

Yahoo!ロコの地域情報を自動収集する方法【テンプレートあり】

ノンプログラミングでYahoo!ファイナンスの株価情報を収集する方法

【非エンジニア向け】Octoparseでページループしてしまう問題の解決方法