Indeedから求人情報をスクレイピングする

2019年09月09日

参考ビデオ:https://www.youtube.com/watch?v=TZKQlzlaW3s&t=23s

このチュートリアルでは、Indeed.comから求人情報をスクレイピングする方法を説明します。Octoparseを使うと、仕事名、会社、給料、説明などの情報を簡単に抽出できます。コーディング必要もないし、URLを入力して抽出タスクを設定するだけで、たくさんの求人情報を無料で入手できます!

indeed.comから求人情報をスクレイピングすると、次のことができます。

· より多くの就職チャンスをゲットする

· 業界の長所と短所を分析する

· 仕事の説明を分析して自分の能力を高める

...

jp.indeed.comにキーワードに「エンジニア」、 勤務地に「東京」を入力して検索して以下のURLを得ました。

https://jp.indeed.com/jobs?q=%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2&l=%E6%9D%B1%E4%BA%AC

 

本記事ではこのURLを利用して2つのタスクを組み合わせる、具体的な求人情報を抽出する手順を紹介します。

(一部のサイトはHTML構造の原因で、2つのタスクを組み合わせて対応しなければいけない場合があります。indeedの場合は情報ページは普通右側に展示されていますよね。実は、たまに右側ではなく、違うタブでリンク先に飛んでいく時もあります。)

以下は本チュートリアルの主な内容です。[タスクファイルをダウンロードする ]

 

タスク1:検索結果ページからリストとなるURLを抽出する

1) 「Webページを開く」 - 内蔵ブラウザで対象のWebページを開く

2) ページ遷移のループを作る - 「次へ」ボタンをループクリックする

3)「ループアイテム」を作る - 抽出したいデータをループに入れる

4) タスクを始める - URLを取得する 

 

 

タスク2:求人詳細情報を抽出する

1)URLを一括インポートする-各求人詳細情報ページを開く

2)データを抽出する-抽出したいデータを選択する

3)タスクを始める-データを取得する

 

 

タスク1:検索結果ページからリストとなるURLを抽出する

タスク1は単に検索ページから各求人詳細情報ページに渡れるページのURLを抽出しますので、複雑な作業にはなりません。

 

1) 「Webページを開く」 - 内蔵ブラウザで対象のWebページを開く
  • 「カスタマイズモード」を選択し、タスクを作ります。
  •  検索結果のURLを入力して「URLを保存する」をクリックします。

 webページを開く

 

 

 2) ページ遷移のループを作る - 「次へ」ボタンをループクリックする

  • スクロールして「次へ」ボタンをクリックします。
  • 設定画面の右側の下にある「操作ヒント」の「単一要素をループクリックする」を選択します。

 ページ遷移のループを作る

 

Octoparseは自動的に「ページネーション」オプションで「次へ」ボタンの位置を指定する構文のXPATHが生成されます。しかし、Octoparseで自動生成されたXPATHは器用しなくなる時がありますので、タスク実行が順調にページに渡るために、XPATHを変更する必要があります。

   まずはFirefoxブラウザでFirepath / Firebug拡張機能から正しいXPathを見つけます。

ページネーションxpath

正しいXPathは//span[contains(text(),"次へ")]/../..

  それから、正しいXPathを「高級オプション」の「単一要素」の入力ボックスに貼り付けます。

xpath変更

 

ヒント!

  • Firebug拡張ツールは、HTML文書の要素を検索するのに非常に便利です。(Firebugは旧バージョンのFireboxでのみ利用可能です。詳細はこちらの旧バージョンのFireboxをダウンロードする
  • 次のページに渡れないデータが重複に抽出するなどの場合は、「ページネーション」のXPathが正しいかどうかをチェックする必要があります。ページに渡るボタンをクリックするだけでOctoparseが自動的にXPathが生成されてとても便利ですが、元のXPathを変更したほうが各要素を指定する正確性が高くなります。
  • Xpathの初心者はこちらのチュートリアルをご覧ください

 

3) 「ループアイテムを作る」 - 抽出したいデータをループに入れる

現在、内蔵ブラウザでは2ページ目に移行しましたので、1ページ目に戻ってループアイテムを作ります。

  • 「Webページを開く」と「ページネーション」を順番にクリックし、1ページ目に戻ります。

1ページ戻り

 

  • 1番目と2番目のタイトルをクリックすると、同じ構造となっている残りのタイトルが識別されます。
  • 「操作ヒント」の「選択された要素のURLを抽出する」をクリックします。

Octoparseは選択された全てのタイトルのURLを自動的に選択します。選択したリンクは緑色で表示され、ループアイテムが生成された後に赤色に変わります。Octoparseはこの「ループアイテム」にある内容の全てを抽出できます。

ループ作り

  • 必要に応じて、フィールド名を編集します。

 タスク1フィールド編集

 

 

4) タスクを始める - データを取得する
  • 最後に「保存」と「抽出開始」を順番にクリックしてタスクを実行します。
タスク1実行

 

 

タスク2:求人詳細情報を抽出する

タスク2はタスク1で取得されたURLをインポートして、具体的な情報を抽出します。

 1) URLを一括インポートする-各求人詳細情報ページを開く

タスク1をクラウド抽出で各求人詳細情報ページのURLを取得することができました。タスク2を作成しましょう。

  • カスタマイズモードで新しいタスクを作成します。
  • 「URLを入力する」で「タスクからインポートする」モードを選択し、URL入力画面でタスク1を選択します。
  • 「URLを保存する」をクリックします。

urlをインポートする

2)データを抽出する-抽出したいデータを選択する

ループ内にある各求人情報詳細ページを開いてみれば、ページにある情報量がみなそれぞれなんです。すべてのデータを抽出したいですので、情報量の一番多いページからデータを選択しなければならないです。

  • 情報量の一番多いページを開きます。

ループ内容確認

 

 

  • 必要なデータを選択します。
  • 「操作ヒント」で「選択した要素のテキストを抽出する」をクリックします。

 データ選択

  • 必要に応じて、フィールド名を編集します。

フィールド編集

 

3) タスクを始める - データを取得する

  • 最後に「保存」と「抽出開始」を順番にクリックしてタスクを実行します。

 タスクを実行する

 

動画:食べログからグルメランキング情報をスクレイピングする

 

 

この記事は役に立ちましたか?もしご不明な点がございましたら、いつでもお問い合わせください!external-link-symbol

 

 

 

btn_sidebar_use.png
btn_sidebar_form.png