Google Jobsのスクレイピング方法を理解するのは、必ずしも簡単ではありません。難しいのは、Googleが求人情報をJavaScriptで動的にレンダリングし、ユーザーの位置情報やデバイスに応じてレイアウトや読み込み方法が異なることです。単純なHTTPリクエストでは、通常、部分的または壊れたデータしか取得できないため、手動でスクレイピングするのは少々面倒です。そのため、APIやブラウザ自動化ツールを使用する方が、JavaScript、ジオターゲティング、データ解析をより確実に処理できるため、より良い方法となることが多いのです。このガイドでは、他のユーザーにも効果があったいくつかの確実な方法を紹介します。求人データの収集を自動化することで、一日中手動でコピー&ペーストする必要がなくなります。
Google Jobsのスクレイピングの障害を解決する方法
方法1:Oxylabs Web Scraper APIを使用する
OxylabsのWeb Scraper APIは、特に大規模なスクレイピングを行う場合に非常に強力なツールです。ヘッドレスブラウザ、ジオターゲティング、カスタムパーサーを使用することで、乱雑なHTMLではなく構造化されたジョブデータを提供します。一度セットアップすれば、スムーズに動作させるまでに多少の調整が必要になるかもしれませんが、一度セットアップすれば、多くのクエリを高い信頼性で自動化できるため、大規模なプロジェクトや継続的なトラッキングに最適です。
- API 認証情報 (通常はダッシュボードに表示されるユーザー名とパスワード) を持つOxylabs アカウントが必要になります。
- 一部のライブラリ (やなど
aiohttp
)asyncio
はより新しく、より優れているため、Python 3.11 以降を実行していることを確認してください。 - 必要なライブラリをインストールします
pip install aiohttp asyncio pandas
。当然ですが、Windows では必要以上に難しくなります。 payload.json
必要なデータ(役職、会社、場所など)を Oxylabs に正確に伝えるためのファイルを設定します。- 次の機能を実行する Python スクリプト (
jobs_oxylabs.py
) を作成します。 – API 認証情報を使用して認証します。 – スクレイピング ジョブを開始するためのリクエストを送信します。 – 結果の準備ができているかどうかを定期的に確認します。 – データをダウンロードし、CSV にエクスポートします。 - 最後に、を使用すると、複数の検索クエリと場所を同時に実行できます
asyncio
。各検索が完了するのを待たずに、一連の検索をスケジュールできるので便利です。
各クエリでは、検索語と場所に基づいて名前が付けられたCSVファイル( など)が生成されますdeveloper_jobs_New_York.csv
。これにより、収集されたデータが整理され、分析の準備が整います。
方法2:SerpApiを使った簡単かつ迅速な方法
もっとシンプルなものがお好みなら、SerpApi は非常に使いやすい REST API を提供しています。Oxylabs ほどスケーラブルではありませんが、実験や小規模なバッチ処理であれば、非常に役立ちます。JavaScript レンダリングは SerpApi が処理するので、リクエストに対して国、言語、半径などのフィルターが設定された構造化された結果が返されます。
- SerpApi ダッシュボード から API キーを取得します。
- 必要な Python パッケージをインストールします:
pip install requests pandas
。 - 次のようなリクエストを送信するには、API エンドポイントを使用します。
https://serpapi.com/search.json?q=software+developer&engine=google_jobs&api_key=YOUR_API_KEY
- JSON 応答を解析し、タイトル、会社、場所、ソース、共有 URL などの関連フィールドを CSV に保存します。
- 必要に応じてページ区切りを使用します
next_page_token
。これにより、後続のリクエストでより多くの結果を取得できます。
これは「設定して忘れる」タイプの機能で、ほとんどの小規模プロジェクトや簡単な情報収集には十分です。ただし、サブスクリプションによってはレート制限が適用される場合があることにご注意ください。
方法3: Seleniumを使ったローカルスクレイピング
冒険心のある方、あるいはちょっとしたテストをしたい方は、Seleniumがおすすめです。ヘッドレスモードでChromeブラウザを実際に実行し、ページをスクロールして、XPathセレクタを使ってデータを取得します。Googleは頻繁にレイアウトを更新するため、Seleniumは少々不安定です。そのため、セレクタが壊れてやり直しが必要になる可能性があります。
- Chrome バージョンに一致する ChromeDriver をダウンロードし、PATH に追加します。
- Selenium と pandas をインストールします
pip install selenium pandas
。 - 検出を回避するために Chrome オプションを設定します (ユーザー エージェントの設定、情報バーの無効化など)。そのためには追加の調査が必要ですが、通常は単純なヘッドレス構成で機能します。
- Google Jobsの検索URLを開き、プログラムでスクロールダウンしてさらに検索結果を読み込みます。これは通常、JavaScriptの実行や、定期的にスクロールダウンするループ処理を伴います。
- XPathまたはCSSセレクターを使用して、役職、会社名、所在地、日付、給与などの情報を抽出します(利用可能な場合)。これらのセレクターは頻繁に調整する必要があることを想定してください。
- 後で分析するために結果を CSV に保存します。
注意:Googleのレイアウト変更により、スクレイパーが頻繁にクラッシュすることがあります。セレクターを定期的に見直す必要があるかもしれません。また、リクエストが多すぎると一時的にブロックされる可能性があるため、スクレイピング速度を調整してください。
最適なものを選ぶ
- Oxylabs API = ビッグデータパイプライン、大容量、複数の拠点。大量のデータを常に必要とする業界や企業に最適です。
- SerpApi = 迅速、シンプル、小規模なユースケースやテストに最適。長期的な柔軟性は低いですが、導入は簡単です。
- Selenium = APIが利用できない場合、またはいくつかの結果を試したい場合。プロトタイプや限定的なスコープでのカスタムスクレイピングに最適です。
まとめ
Google Jobsのデータを大規模に取得するのは、特にスクレイピング対策やレイアウト変更が多数あるため、決して楽なことではありません。しかし、Oxylabs、SerpApi、Seleniumなどのツールを使えば、はるかに管理しやすくなります。このプロセスを自動化することで、求人動向を把握したり、データベースを構築したり、あるいは手作業で常にスクレイピングを行うことなく、単に趣味でスクレイピングしたりすることが可能になります。ただし、Googleは検索結果のスクレイピングにあまり積極的ではないため、これらの方法は賢く責任を持って使用してください。
まとめ
- Oxylabs APIは、高負荷でスケーラブルなスクレイピングに最適です。
- SerpApiは小規模なプロジェクトのための迅速なセットアップを提供します
- Seleniumはテストやカスタムソリューションに適しています
- 常にレート制限を尊重し、ブロックされないようにしてください
最終ノート
これでGoogle Jobsのスクレイピング作業が効率化されることを願っています。重要なのは、ニーズに合った適切なツールを選ぶことです。時には試行錯誤も必要です。頑張ってスクレイピングを!