サラリーマンをやったり、マーケターをやったり、中小企業診断士をやったり、プログラマーをやったり、ブロガーをやったりしています。
今回はdodaという求人情報サイトのスクレイピング方法について解説します。
ただし、この記事はあくまでのスクレイピングのスキルアップを目的とした勉強教材として提供します。
スクレイピングを行う際は、ご自身の責任で行ってください。あと、もし行う場合は、timeのsleepなどを使って、相手様のサーバーに負荷をかけないようにしましょう。
念のためPython文法を知り、Seleniumを知り、BeautifulSoupを知り、timeを知り、マナーを知っている方に向けて書くので、結構抽象的です。
dodaのスクレイピングの方法
ステップは以下の通り。もっといい方法あるのかもしれませんが、僕の頭で考える限りで最も現実的な方法です。
- 検索条件を入力して、検索結果(企業一覧画面)を表示
- 検索画面のページネーションで2ページ目を表示
- URLの末尾の数字を、「formatメソッド」と「for文」でページネーションの最後まで回す(Selenium)
- 「社名」か「求人詳細を見る」のリンク先URLを取得してリスト化(Selenium)
- 上記で獲得したURLのリストを「for文」で全部回す(BeautifulSoup)
- 各ページにある求人コードを取得してリスト化(BeautifulSoup)
- 検索結果一位になる企業情報を開き、タブで求人詳細を開く
- URLで求人コードの部分を「formatメソッド」と「for文」でページネーションの最後まで回す(BeautifulSoup)
- 各企業の求人情報で必要箇所の情報をスクレイピング(BeautifulSoup)
- あとはご自由にお料理を
難しかったところは?
dodaの場合、求人情報ページのURLの取得が難しかったです。
本来であれば、「検索結果一覧画面→リンクから企業情報ページのURL取得」となるはずが、dodaの場合は、検索結果一覧画面から企業情報への遷移先が、検索上位企業と下位企業で変わるのです。
検索上位企業はPickUp情報へ、検索下位企業は求人情報へ遷移するURLが貼られています。
なので、せっかくURLがリスト化できても、その後に出てくる企業情報のフォーマットが異なるので、綺麗にスクレイピングできないのです。
だから、一旦「全ページ共通でついている求人コードを引っ張る→求人情報のURLの一部にfor文とformatメソッドで求人コードを挿入→各求人情報ページからスクレイピング」というかなりまどろっこしい方法を取らざるをえませんでした。
ぜひ参考にしてみてください。
ちなみに文系出身の僕がスクレイピングスキルを会得するまでに学んだ教材を下記にまとめています。興味ある方はどうぞ!
-
文系出身がPythonでスクレイピングできるまでに学んだ教材を紹介
ジキどうも、複業家のジキ(@jikky_bongjing)です! サラリーマンをやったり、マーケターをやったり、中小企業診断士をやったり、プログラマーをやったり、ブロガーをやったりしています。 これを ...