求人情報をスクレイピングする際のブロックされない方法

Lucas Mitchell
Automation Engineer
17-Apr-2026

要約:
- 住宅用プロキシのローテーション: IndeedやLinkedInなどの求人ボードでブロックされないために、高品質な住宅用IPを使用してください。
- ブラウザファイngerprintの模倣:
curl_cffiなどのツールを使用して、TLSファイngerprintとHTTPヘッダーを実際のブラウザプロファイルに一致させます。 - CAPTCHAの自動処理: Cloudflare TurnstileやreCAPTCHAのチャレンジを処理する信頼できるソルバーとしてCapSolverを統合してください。
- ロボット.txtとレートリミットを尊重する: ランダムな遅延を実装し、倫理的なスクレイピングガイドラインに従って、長期的なアクセスを維持してください。
はじめに
求人情報のウェブスクレイピングは、採用代理店、市場調査者、求人アグリゲーターにとって中心的な技術となっています。しかし、主要な求人ボードは、データ収集を数秒で停止するような高度なセキュリティチェックを導入しています。求人ポストをスクレイピングしようとした際に即座にIPアドレスがブロックされたり、無限ループの検証に陥ったりした経験がある人は少なくありません。課題は、自動スクリプトを人間のブラウジング行動と区別できないようにすることにあります。このガイドでは、低検出性を維持しながら効果的に求人情報をスクレイピングするための包括的な技術的ロードマップを提供します。
なぜ求人ボードがスクレイパーをブロックするのか
Indeed、Glassdoor、LinkedInなどの求人プラットフォームは、独自のデータを保護し、サイトの安定性を確保するために高い投資を行っています。これらは主に4つの検出層を使用してスクレイパーを特定し、ブロックしています。
IPベースの信頼性とレートリミット
ほとんどの求人ボードは、1つのIPアドレスからのリクエスト数を追跡します。一定のしきい値を超えると、IPアドレスは一時的または永続的にブラックリストに追加されます。データセンターIPは特に脆弱で、サーバーファームのものと簡単に識別されるためです。
ブラウザとTLSファイngerprintの分析
現代のアンチボットシステムは、User-Agentを越えて分析を行います。TLS(トランスポートレイヤーセキュリティ)ハンドシェイクをチェックし、特定の暗号スイートや拡張機能を確認します。Pythonスクリプトがデフォルトのrequestsライブラリを使用している場合、そのJA3ファイngerprintはすぐにボットであることを示します。
行動分析
人間のユーザーは0.5秒ごとにリンクをクリックしたり、完全に直線的なパターンでナビゲートしたりしません。固定されたリクエスト間隔やCSS/画像のロードが欠如しているスクレイパーは、行動分析エンジンによってすぐにブロックされます。
CAPTCHAとJavaScriptチャレンジ
サイトが疑いながらも確信できない場合、チャレンジをトリガーします。これは単純なJavaScript実行チェックまたは複雑なCAPTCHAになることがあります。これらの問題を自動的に解決する方法がない場合、スクレイピングワークフローは完全に停止します。
非検出型求人スクレイピングの必須技術
信頼性の高いスクレイパーを構築するには、各検出層に対して特定の技術的対策を講じる必要があります。
1. 住宅用プロキシローテーションの実装
単一のIPアドレスを使用するのはブロックされる最速の方法です。代わりに、住宅用プロキシのプールを使用する必要があります。データセンターIPとは異なり、住宅用IPはインターネットサービスプロバイダー(ISP)が実際の家庭に割り当てているものであり、正当なトラフィックと区別するのが非常に困難です。
| プロキシタイプ | 検出リスク | コスト | 最適な使用ケース |
|---|---|---|---|
| データセンター | 高 | 低 | 低セキュリティサイト、テスト |
| 住宅 | 低 | 中 | Indeed、LinkedIn、Googleジョブ |
| モバイル(4G/5G) | 非常に低 | 高 | 高度なアンチボットシステム |
求人情報をスクレイピングする際には、プロキシプロバイダーが自動ローテーションをサポートしていることを確認してください。これにより、すべてのリクエストまたはセッションが異なる地理的場所とIPアドレスから送信されます。
2. TLSファイngerprintの模倣の習得
前述したように、requestsやurllibなどの標準ライブラリには特徴的なTLSファイngerprintがあります。これを解決するには、curl_cffiを使用し、実際のブラウザ(ChromeやFirefoxなど)のTLSハンドシェイクを模倣する必要があります。
python
from curl_cffi import requests
# Chrome 120 TLSファイngerprintを模倣
response = requests.get(
"https://www.indeed.com/jobs?q=software+engineer",
impersonate="chrome120",
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
}
)
print(response.status_code)
User-Agentを対応するTLSプロファイルと一致させることで、CloudflareやAkamaiによってブロックされる可能性が大幅に低下します。
3. CapSolverによるCAPTCHAの処理
完全なヘッダーとプロキシを使用しても、最終的にはチャレンジに遭遇します。求人ボードは頻繁にCloudflare TurnstileやreCAPTCHAを使用してユーザーを検証します。これらをスケールして手動で解決することは不可能です。これはCapSolverが自動化スタックの必須要素となる理由です。
CapSolverは、さまざまなCAPTCHAタイプを解決するシームレスなAPIを提供します。たとえば、GoogleジョブAPIを使用している場合やIndeedをスクレイピングしている場合にCloudflare Turnstileチャレンジに遭遇した場合、次の公式実装を使用できます:
python
import requests
import time
api_key = "YOUR_CAPSOLVER_API_KEY"
site_key = "0x4XXXXXXXXXXXXXXXXX" # ターゲットサイトのHTMLに記載
site_url = "https://www.target-job-board.com"
def solve_turnstile():
payload = {
"clientKey": api_key,
"task": {
"type": 'AntiTurnstileTaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
task_id = res.json().get("taskId")
if not task_id:
return None
while True:
time.sleep(1)
result_res = requests.post("https://api.capsolver.com/getTaskResult", json={"clientKey": api_key, "taskId": task_id})
result = result_res.json()
if result.get("status") == "ready":
return result.get("solution", {}).get('token')
if result.get("status") == "failed":
return None
token = solve_turnstile()
このコードをワークフローに統合することで、スクリプトが人間の介入なしでタスクを継続できるようになります。これにより、データパイプラインの稼働時間を効果的に維持できます。
CapSolverボーナスコードを取得する
自動化予算を即座に増やす!
CapSolverアカウントにチャージする際、ボーナスコード CAP26 を使用すると、毎回チャージに対して5%のボーナスが追加されます — 制限なし。
今すぐCapSolverダッシュボードで利用してください
4. リクエストヘッダーとリファラーの最適化
一般的なミスは「裸の」リクエストを送信することです。実際のブラウザは常にRefererヘッダーといくつかのSec-CH-UA(クライアントヒント)ヘッダーを送信します。求人情報をスクレイピングする際には、リファラーをサイトのホームページまたは以前の検索結果ページに設定してください。
- User-Agent: 最新で人気のある文字列を使用してください。
- Referer:
https://www.google.com/またはサイトのドメイン。 - Accept-Encoding:
gzip, deflate, br(コードがこれらを解凍できるようにしてください)。
スクレイピング戦略の比較要約
| 戦略 | 効果 | 実装の手間 | 推奨用途 |
|---|---|---|---|
| 基本的なPython requests | 非常に低い | 低い | 非保護の個人ブログ |
| ヘッドレスブラウザ(Selenium) | 中程度 | 中程度 | JavaScriptが大量に使用されているサイト |
| ステルスブラウザ+プロキシ | 高い | 高い | Indeed、Glassdoor、LinkedIn |
| ウェブスクレイピングAPI | 非常に高い | 低い | 企業規模の求人データ抽出 |
倫理的・法的な考慮事項
技術的な成功は重要ですが、倫理的なスクレイピングも優先してください。常にサイトのrobots.txtファイルと利用規約を確認してください。W3Cのガイドラインによると、世界中のウェブコンソーシアム(W3C)は、ターゲットサーバーの健全性を尊重して過剰なリクエストで負荷をかけないことが倫理的なデータ収集の一部です。さらに、電子フロントライン(Electronic Frontier Foundation)は、公開されているデータをスクレイピングすることは一般的に保護されているが、プライベートなユーザー情報にアクセスしたり、許可なしにログインウォールを突破したりすることは避けるべきだと強調しています。
結論
ブロックされずに求人情報を成功裏にスクレイピングするには、多層的なアプローチが必要です。住宅用プロキシローテーション、TLSファイngerprintの模倣、CapSolverによる自動CAPTCHA解決を組み合わせることで、人間の行動を模倣する信頼性の高いシステムを構築できます。ウェブスクレイピングの環境は常に進化しているため、最新のセキュリティ管理のトレンドを常に最新に保つことが、競争力の維持に不可欠です。
FAQ
1. 求人情報をスクレイピングすることは合法ですか?
多くの管轄区域内では、公開されている求人情報をスクレイピングすることは合法です。ただし、コンピュータ詐欺と不正アクセス法(CFAA)や著作権法に違反しないようにしてください。特定の使用ケースについては法的助言を受けてください。
2. どのくらいの頻度でプロキシをローテーションすべきですか?
Indeedなどの高セキュリティサイトでは、リクエストごとまたは数分ごとにIPをローテーションするのが最も良いです。パターンの検出を避けるためです。
3. アカウントなしでLinkedInをスクレイピングできますか?
LinkedInは非常に制限されています。一部の公開プロフィールや求人は表示されますが、多くのデータはログインウォールの向こうにあります。ログインの後ろでスクレイピングを行うと、法的および技術的なリスクが高まります。
4. ヘッドレスブラウザがなぜまだ検出されるのですか?
PuppeteerやSeleniumなどの標準的なヘッドレスブラウザは、navigator.webdriver = trueなどの「ファイngerprint」を残します。これらのプロパティを隠すために、stealthなどのプラグインを使用してください。
5. IPブロックを避ける最善の方法は何ですか?
IPブロックを避けるための最も効果的な方法は、住宅用プロキシとランダムなリクエスト間隔(ジャイタ)の組み合わせです。
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

画像認識AIはどのように機能しますか? | 技術ガイド
画像認識AIの仕組みを学びましょう。この包括的な技術ガイドでは、CNN、ピクセル処理、および実際の応用について学びます。

Sora Fujimoto
17-Apr-2026

求人情報をスクレイピングする際のブロックされない方法
ブロックされずに求人情報をスクレイピングするための最適なテクニックを学びましょう。CapSolverでIndeedのスクレイピング、Google Jobs API、およびウェブスクレイピングAPIをマスターしましょう。

Lucas Mitchell
17-Apr-2026

クロームがウェブサイトをブロックする理由: セキュリティ対自動化アクセスの説明
Chromeがウェブサイトをブロックする理由を理解し、セーフブラウジングやSSLチェックなどのセキュリティ機能から、ERR_CONNECTION_REFUSEDなどの一般的なエラーまでを解説。これらの自動化への影響と、正当なアクセスのための戦略について学び、CapSolverを活用したCAPTCHAの解決も含みます。

Ethan Collins
17-Apr-2026

reCAPTCHAスコアの説明:範囲、意味、および改善方法
reCAPTCHA v3のスコア範囲(0.0〜1.0)の理解、その意味、およびスコアを向上させる方法を学びます。低スコアへの対応方法とユーザー体験を最適化する方法について学びます。

Rajinder Singh
16-Apr-2026

クラウドフレアトゥルニスタイルの解決方法:車両データの自動化における
Cloudflare Turnstileを車両データおよび公文書の自動化で処理する方法を学びましょう。CapSolverとn8nを使用して、レコードのスクレイピングを効率的に自動化します。

Sora Fujimoto
16-Apr-2026

reCAPTCHA 無効なサイトキーまたはトークン? 原因と解決方法のガイド
「reCAPTCHA 無効なサイトキー」や「無効なreCAPTCHAトークン」のエラーに直面していますか?一般的な原因、ステップバイステップの修正手順、トラブルシューティングのヒントを確認してください。reCAPTCHAの検証失敗の問題を解決する。reCAPTCHAの検証失敗を修正する方法を学びましょう。もう一度試してください。

Aloísio Vítor
16-Apr-2026


