B2Bのリードリストを作ったり、競合調査をしたり、CRMを最新状態に保ったりするなら、LinkedInがどれだけ価値ある情報源かはもう知っているはずです。とはいえ、プロフィール情報を手でコピペするのは、ただひたすら退屈で気が重くなる作業ですし、LinkedInの標準機能だけでは欲しいデータにたどり着けないことも少なくありません。だからこそ2026年には、これまで以上に多くの営業・オペレーションチームが PythonでLinkedInをスクレイピングする 方法に注目しています。面倒なクリックを何時間も繰り返す代わりに、数行のコードと、見込み客でぎっしり埋まったスプレッドシートが手に入るわけです。

ただし、ここでひとつ大きな注意点があります。今のLinkedInは、まさにビジネスデータの要塞です。13億人以上の会員 と、なんと 月間アクティブユーザー3億1,000万人 を抱えており ()、B2Bリードの宝庫である一方、ボットやスクレイパー対策もかなり厳しいプラットフォームのひとつです。実際、LinkedInは2025年だけで3,000万件超のアカウントを制限 しており、その理由にはスクレイピングや自動化が含まれます ()。では2026年に、アカウントをデジタル収容所送りにせずに、どうやってPythonでLinkedInデータを抽出すればよいのでしょうか? ここでは、セットアップから安全なスクレイピング、データの整形、そしてThunderbitのようなツールで作業を一気に高速化する方法まで、順番に解説します。
PythonでLinkedInをスクレイピングするとはどういう意味?
LinkedInをPythonでスクレイピングする とは、Pythonのスクリプトやライブラリを使って、LinkedInのWebページからデータ収集を自動化することを指します。名前、役職、会社情報などを1件ずつコピー&ペーストする代わりに、プロフィールにアクセスし、必要な項目を抜き出し、構造化された形式で保存するスクリプトを書くわけです。
手作業でのデータ収集 は、リンゴを1個ずつ拾うようなものです。これに対して PythonによるLinkedInデータ抽出 は、木をまとめて揺らして、リンゴをかごで受け止めるようなもの。ここで狙っているキーワード、つまり linkedin data extraction python、python linkedin scraper、automate linkedin scraping は、どれも同じ考え方を表しています。つまり、コードを使ってLinkedInデータを大量かつ高速に、できれば人間より安全に集めるということです。
LinkedInスクレイピングが使われるビジネスシーン
- 営業向けのターゲットリードリスト作成
- 最新の役職や会社情報を使ったCRMデータの補強
- 競合企業の採用動向や役員異動の監視
- 市場調査のための業界ネットワーク可視化
- 分析用の企業投稿や求人情報の集約
要するに、構造化されたLinkedInデータが必要で、週末を「Connect」ボタンのクリックに費やしたくないなら、Pythonはかなり頼れる相棒です。
なぜLinkedInスクレイピングを自動化するのか?主なビジネス活用例
率直に言って、LinkedInはただのSNSではなく、現代のB2B営業・マーケティングの土台です。2026年に多くのチームがLinkedInスクレイピングの自動化に夢中になっている理由は、以下のとおりです。
- リード獲得: し、62%が実際にリード獲得につながっている と答えています。LinkedInは、FacebookとTwitterを合わせたよりも 277%多くのリード を生み出します。
- 市場・競合調査: リアルタイムの組織図、採用動向、企業ニュースをここまで大規模に確認できる場所は、LinkedIn以外ほぼありません。
- CRMの情報補強: 自動化なしでCRMを最新に保つのは、かなり骨の折れる作業です。LinkedInをスクレイピングすれば、役職、会社名、連絡先情報をまとめて更新できます。
- コンテンツ・イベント分析: 自分の業界で誰が投稿しているのか、登壇しているのか、採用しているのかを知りたいなら、LinkedInのデータが役立ちます。
よくある用途を、簡単な表でまとめると次のとおりです。
| チーム | 用途 | 得られる価値 |
|---|---|---|
| 営業 | リードリスト作成、アプローチ準備 | 商談数の増加、成約率の向上 |
| マーケティング | 受け手分析、コンテンツ収集 | より精密なターゲティング、高いエンゲージメント |
| オペレーション | CRM補強、組織図の可視化 | データの整備、手入力の削減 |
| 採用 | 人材ソーシング、競合分析 | 採用スピードの向上、精度の高い候補者管理 |
ではROIはどうでしょうか。AIによる自動化を使ったリサーチ業務では、1日あたり 2〜3時間の削減 が報告されており ()、TripMasterのような企業ではLinkedInベースのリード獲得で 650%のROI を実現しています ()。これは単なる時短ではなく、パイプライン全体を押し上げる力です。
Pythonと他のLinkedInスクレイピング手法:知っておくべき違い
では、なぜブラウザ拡張やSaaSツールではなくPythonを使うのでしょうか。ざっくり比較してみましょう。
手動コピペ
- メリット: 準備不要、リスクもほぼなし(腱鞘炎を除けば)
- デメリット: 遅い、ミスが多い、拡張できない
ブラウザ拡張(PhantomBuster、Evabootなど)
- メリット: 設定が簡単、コード不要、小規模なら十分使える
- デメリット: スケールしにくい、BANリスクが高い、Sales Navigatorが必要な場合が多い、月額費用がかかる
SaaS API(Bright Data、Apifyなど)
- メリット: 大規模処理に強い、保守負担が少ない、コンプライアンス面を提供側が担う
- デメリット: 大量処理では高コスト、データが遅延・キャッシュされることがある、柔軟性が低い
Pythonスクリプト
- メリット: 柔軟性が最大、規模が大きいほど1件あたりのコストが最小、リアルタイム性が高い
- デメリット: 高い技術力が必要、BANリスクが最も高い、継続的な保守が必要
比較表はこちらです。
| 項目 | DIY Python | ブラウザ拡張 | SaaS API |
|---|---|---|---|
| 準備時間 | 数日〜数週間 | 数分 | 数時間 |
| 必要な技術力 | 高い | 低い | 中程度 |
| コスト(1万行) | 約200ドル(プロキシ代) | 50〜300ドル | 300〜500ドル |
| スケール上限 | 高い | 低〜中 | 高い |
| BANリスク | 最も高い | 高い | 最も低い |
| データの鮮度 | リアルタイム | リアルタイム | キャッシュ |
| 保守 | 継続的に必要 | 少ない | なし |
| コンプライアンス | 利用者側の責任 | 利用者側の責任 | 提供側の責任 |
結論: 技術に強くて、すべてを自分でコントロールしたいならPythonはかなり強力です。ただし、ほとんどのビジネスユーザーにとっては、 のようなツールのほうが、はるかに速くて安全にLinkedInデータへアクセスできます。LinkedInの防御は年々厳しくなっているからです。
始め方:PythonでLinkedInスクレイパーをセットアップする
準備はいいですか? それでは2026年版のLinkedInスクレイピング用Python環境を構築しましょう。
1. Pythonと主要ライブラリをインストールする
- 互換性を考えると、Python 3.10以上 を推奨します。
- 主なライブラリ:
- Playwright(ブラウザ自動化の新しい標準)
- Selenium(今も人気だが、遅くて検出されやすい)
- Beautiful Soup(HTML解析用)
- Requests(簡単なHTTPリクエスト用。LinkedInでは用途がかなり限定的)
- pandas(データ整形・出力用)
pipでインストールします。
1pip install playwright selenium beautifulsoup4 pandas
Playwrightでは、ブラウザ本体のインストールも必要です。
1playwright install
2. ブラウザドライバーを設定する
- Playwright はドライバーを自動で管理します。
- Selenium では または が必要です。
- ブラウザとドライバーのバージョンが一致していることを確認しましょう。
3. ログイン準備をする
- LinkedInアカウントが必要です。できれば、ある程度使い込まれていて、実際の利用履歴があるものが望ましいです。
- 多くのスクリプトでは、次のどちらかを使います。
- ログイン操作を自動化する(CAPTCHAのリスクあり)
li_atセッションクッキーを注入する(速いが、やはりリスクは残る)
4. LinkedInの利用規約を理解する
注意: 自分のアカウントを使う場合でも、LinkedInのスクレイピングは 利用規約違反 です。法的な扱いは複雑で(hiQ対LinkedInの訴訟もその一例です)、現在のLinkedInは取り締まりをかなり強化しています。これらのスクリプトは教育目的または社内調査目的にとどめ、スクレイピングしたデータを販売したり公開配布したりしないでください。
LinkedInの制限をどう避ける?2026年にアカウントBANのリスクを下げる方法
ここからが本番です。2026年のLinkedInのボット対策はかなり厄介です。実際、Proxycurlのような事業者が事業停止に追い込まれ、2025年だけで3,000万件超のアカウントが制限 されています ()。では、どうすればアカウントを焼かれずにスクレイピングできるのでしょうか。
主なリスク
- レート制限: 未ログインユーザーは、IPごとに1日あたり約 50件のプロフィール閲覧 しかできません。ログイン済みアカウントでも、CAPTCHAやBANに当たる前に数百件程度が限界です ()。
- CAPTCHA: とくに短時間でプロフィールを連続閲覧したり、何度もログインしたりすると頻繁に表示されます。
- アカウント制限: 不審な動きがあると、LinkedInはアカウントをロック、制限、または永久停止することがあります。
リスクを下げるための実践策
- モバイルプロキシまたは古く信頼性の高い住宅用プロキシを使う: LinkedIn上での生存率は、モバイルプロキシが 85%、住宅用が50%、データセンターIPはほぼ0%です ()。
- 待機時間をランダム化する: 固定で
time.sleep(5)としないこと。2〜8秒の範囲でランダムに遅延させましょう。 - アカウントを温める: 作成したばかりのアカウントでいきなり100件のプロフィールを見に行かないでください。最初は少しずつ、実際のユーザーの動きに近づけます。
- 業務時間帯に実行する: アカウントのタイムゾーンに合わせてスクレイピングしましょう。
- セッションごとにUser-Agentを変える: ただし、セッション途中で変更しないでください。LinkedInに怪しまれます。
- 自然にスクロールする: ブラウザ自動化でスクロールし、遅延読み込みのコンテンツを呼び出します。
- アカウントごとにIPを分ける: 1つのプロキシの背後で複数アカウントを動かさないでください。
- 早期警告を監視する: 429エラー、
/authwallへのリダイレクト、プロフィール本文が空になる、といった兆候が出たら、BANが近いサインです。
ワンポイント: Playwright Stealth や undetected-chromedriver のような優秀なステルス系プラグインでも、表面的な指紋を少し隠せるだけです。LinkedInの検知はもっと深い層で動いているので、油断は禁物です。
LinkedInデータ抽出に適したPythonライブラリを選ぶ
2026年のPythonスクレイピング環境は、かなり整理されてきました。主要ライブラリの特徴を見てみましょう。
| ライブラリ | 静的HTML | JSレンダリング | ログイン処理 | 速度 | 向いている用途 |
|---|---|---|---|---|---|
| Requests + BS4 | ✅ | ❌ | ❌ | 最速 | 小規模な公開ページ |
| Selenium 4.x | ✅ | ✅ | ✅ | 遅い | 既存資産、幅広いブラウザ対応 |
| Playwright (Python) | ✅ | ✅ | ✅ | 高速 | 2026年のLinkedIn標準 |
| Scrapy | ✅ | プラグインで対応 | 工夫次第 | 高速 | 大量の構造化クロール |
LinkedInでPlaywrightが選ばれる理由
- Seleniumより ページ表示が12%高速 で、メモリ使用量も15%少ない ()
- LinkedInの非同期読み込みを手作業の小細工なしで扱える
- タブ管理が標準で使え、並列スクレイピングしやすい
- 基本的なフィンガープリント回避用の公式ステルスプラグインがある
初心者向けアドバイス: これから始めるなら、まずはPlaywrightが最有力です。Seleniumも既存プロジェクトではまだ役立ちますが、遅くて検知されやすいのが難点です。
ステップごとに解説:最初のPython LinkedInスクレイパースクリプト
ここでは、Seleniumを使った基本例(初心者向け)と、Playwrightを使った本番向けの例を見ていきます。繰り返しになりますが、これらは教育目的のみで使ってください。
例1:最小構成のSeleniumログインとプロフィール取得
1from selenium import webdriver
2from selenium.webdriver.common.by import By
3from selenium.webdriver.common.keys import Keys
4import time, random
5driver = webdriver.Chrome()
6driver.get("https://www.linkedin.com/login")
7driver.find_element(By.ID, "username").send_keys("you@example.com")
8driver.find_element(By.ID, "password").send_keys("yourpassword" + Keys.RETURN)
9time.sleep(random.uniform(3, 6)) # 待機時間をランダム化
10# プロフィールを開く
11driver.get("https://www.linkedin.com/in/some-profile/")
12time.sleep(random.uniform(4, 8))
13# スクロールして遅延読み込みを発火
14driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
15# データ抽出(簡略版)
16name = driver.find_element(By.CSS_SELECTOR, "h1").text
17print("Name:", name)
18driver.quit()
注意: 本番運用では、毎回ログインする代わりに li_at クッキーを注入するほうがよいです(CAPTCHA回避のため)。
例2:Playwrightの非同期スクレイパー(2026年の推奨)
1import asyncio
2from linkedin_scraper import BrowserManager, PersonScraper
3async def main():
4 async with BrowserManager() as browser:
5 await browser.load_session("session.json") # ログインセッションを保存
6 scraper = PersonScraper(browser.page)
7 person = await scraper.scrape("https://linkedin.com/in/username")
8 print(person.name, person.experiences)
9asyncio.run(main())
()
BAN対策を入れる場所
- Browser Managerにモバイルプロキシを設定する
- 操作の合間に待機時間をランダム化する
- 一度に大量ではなく、小分けでスクレイピングする
警告: セレクタベースのスクレイパーは、LinkedInがDOMを更新するとすぐ壊れます(数週間ごとに起こります)。保守は必須です。
PythonでLinkedInデータを整形・クリーンアップする
スクレイピングは仕事の半分にすぎません。LinkedInデータは、重複した名前、ばらつきのある役職名、やっかいなUnicode文字などで、かなり汚れています。ここでは、その整え方を紹介します。
1. pandasで表を整える
1import pandas as pd
2df = pd.read_csv("linkedin_raw.csv")
3df = df.drop_duplicates(subset=["email", "phone"]) # 完全一致の重複除去
4df["name"] = df["name"].str.lower().str.strip()
2. 会社名のあいまい一致
1from rapidfuzz import fuzz
2def is_similar(a, b):
3 return fuzz.ratio(a, b) > 90
4# 例: "Acme Corp" と "ACME Corporation"
3. 電話番号とメールアドレスを正規化する
1import phonenumbers
2from email_validator import validate_email, EmailNotValidError
3# 電話番号の正規化
4num = phonenumbers.parse("+1 415-555-1234", None)
5print(phonenumbers.format_number(num, phonenumbers.PhoneNumberFormat.E164))
6# メールアドレスの検証
7try:
8 v = validate_email("someone@example.com")
9 print(v.email)
10except EmailNotValidError as e:
11 print("無効なメールアドレスです:", e)
4. Excel、Google Sheets、CRMに出力する
- Excel:
df.to_excel("cleaned_data.xlsx") - Google Sheets:
gspreadライブラリを使用 - Airtable:
pyairtableを使用 - Salesforce/HubSpot: それぞれのPython APIクライアントを使用
ワンポイント: CRMに入れる前に、必ずクリーニングと重複排除を行いましょう。同じ相手に2回電話するほど営業担当の気持ちを下げるものはありません。
ThunderbitでLinkedInスクレイピングをもっと効率化する
ここからは、作業をさらに楽にする方法です。Pythonは好きですが、LinkedInスクレイパーの保守は、終わりのないモグラ叩きのようなものです。そこでThunderbitでは、LinkedInデータ抽出のつらさを解消する を作りました。
なぜThunderbitなのか?
- 2クリックでスクレイピング: 「AIで項目を提案」をクリックするだけで、Thunderbitがページを読み取り、列を提案し、データを抽出します。コードもセレクタも不要、悩みもなし。
- サブページスクレイピング: 検索結果ページを取得したあと、Thunderbitが各プロフィールを巡回して自動で表を充実させます。
- 即使えるテンプレート: LinkedIn、Amazon、Google Mapsなどにすぐ対応。数秒で始められます。
- 無料エクスポート: Excel、Google Sheets、Airtable、Notionに送るか、CSV/JSONとしてダウンロードできます。
- AI自動入力: フォーム入力や繰り返し作業を自動化。営業オペレーションやCRM管理に最適です。
- クラウド/ブラウザ両対応: ユースケースやログイン要件に合わせてモードを選べます。
- 保守不要: ThunderbitのAIはLinkedInのレイアウト変更に追随するため、壊れたスクリプトを直し続ける必要がありません。
Thunderbitは世界中で 10万人以上のユーザー に利用され、Chrome Web Storeでは 4.4★ の評価を獲得しています ()。多くのビジネスユーザーにとって、アカウントもメンタルも守りながらLinkedInデータを最速・最安全に抽出できる手段です。
上級者向け:LinkedInスクレイピングの規模拡大と自動化
本格運用したいなら、LinkedInスクレイピングを次のレベルに引き上げる方法を押さえておきましょう。
1. スクリプトをスケジュール実行する
- シンプルなジョブなら cron(Linux/Mac)や Task Scheduler(Windows)
- Pythonで扱いやすいスケジューリングと再試行には APScheduler や Prefect 3
- 企業向けのオーケストレーションには Airflow
2. クラウドにデプロイする
- AWS Lambda(Playwrightをコンテナで利用)
- GCP Cloud Run
- Playwrightを簡単にホストするなら Railway / Fly.io / Render
- スクレイピング特化のクラウド運用には Apify
3. 監視と変化検知
- エラー監視には Sentry
- 429エラーの急増やDOM変更を検知するカスタムアラート
- LinkedInのレイアウト変更を見つけるためのハッシュベース差分検出
4. CRMとの連携
- Salesforce、HubSpot、Notion、AirtableのAPIを使って、整形済みデータを自動投入
- パイプラインを構築する: スケジューラ → スクレイパー → pandasで整形・重複排除 → 補強処理 → CRM反映 → アラート
5. コンプライアンスを守る
- 1アカウントあたり1日数百件以上はスクレイピングしない
- プロキシとUser-Agentをローテーションする
- BANの前兆を監視し、兆候が出たら停止する
ワンポイント: どれだけ自動化しても、LinkedInはルールを変える可能性がありますし、実際に変えます。必ずバックアッププランを用意し、重要な業務ではThunderbitの利用も検討しましょう。
まとめと重要ポイント
2026年にPythonでLinkedInをスクレイピングするのは、これまで以上に強力である一方、リスクも高くなっています。押さえておくべき点は次のとおりです。
- LinkedInはB2Bデータの最重要ソース ですが、スクレイパー対策も最も厳しいプラットフォームです。
- PythonはLinkedInデータ抽出に最大の柔軟性 を与えますが、BANリスクと継続保守の負担が伴います。
- Playwrightは今やLinkedInスクレイピングの標準 で、Seleniumより高速かつ安定しています。
- BANリスクの低減は、プロキシ、遅延、実際のユーザー行動の再現がカギ です。モバイルプロキシの生存率は85%、住宅用は50%、データセンターは0%です。
- データのクリーニングは必須 です。CRMに入れる前に、pandas、あいまい一致、検証ライブラリを使いましょう。
- Thunderbitはより安全で高速な代替手段 です。AIによる抽出、サブページ補強、即エクスポート、コード不要を実現します。
- 大規模運用は、スケジューリングから監視、CRM連携まで、あらゆる工程の自動化が必要 です。
そして何より大切なのは、倫理的かつ責任あるスクレイピング を心がけることです。LinkedInの法務チームは、あまり冗談が通じる相手ではありません。
LinkedInの絶え間ない仕様変更に疲れているなら、。これは私が最初から欲しかったツールであり、あなたとLinkedInアカウントを大きなストレスから救ってくれるはずです。
もっと深く知りたい方は、 で、Webスクレイピング、自動化、営業オペレーションのベストプラクティスに関するガイドをぜひご覧ください。
FAQ
1. 2026年にPythonでLinkedInをスクレイピングするのは合法ですか?
法的な状況は複雑です。hiQ対LinkedInの裁判では、公開データのスクレイピングはCFAA違反ではないとされましたが、LinkedInはスクレイピングを禁じる利用規約を独自に運用しており、実際に取り締まっています。2025年にはProxycurlを停止させ、3,000万件超のアカウントをスクレイピング理由で制限しました。スクリプトは社内利用や学習目的に限定し、スクレイピングしたデータを販売・公開配布しないでください。
2. LinkedInスクレイピングを最も安全に自動化する方法は?
古いアカウントを使い、モバイルプロキシ(生存率85%)を利用し、待機時間をランダム化し、業務時間帯に実行します。データセンターIPは使わず、BANの前兆を監視してください。多くのビジネスユーザーにとっては、 のようなツールのほうが、DIYのPythonスクリプトよりずっと低リスクです。
3. 2026年のLinkedInスクレイピングで最適なPythonライブラリは?
Playwright が現在の第一候補です。Seleniumより高速で信頼性が高く、LinkedInの動的コンテンツ処理にも優れています。シンプルな公開ページならRequests + Beautiful Soupでも使えますが、ログインやJavaScriptが絡むならPlaywrightを使いましょう。
4. スクレイピング後にLinkedInデータをきれいに整えるには?
表の整形と重複排除には pandas、あいまい一致には RapidFuzz、連絡先情報の検証には phonenumbers と email-validator を使い、Excel、Google Sheets、またはCRMへは各種Pythonライブラリで出力します。
5. ThunderbitはLinkedInデータ抽出をどう改善しますか?
ThunderbitはAIで項目を提案し、サブページのスクレイピングを処理し、データをお気に入りのツールへ直接出力できます。コードは不要です。LinkedInの頻繁なレイアウト変更にも追随するため、保守負担とBANリスクを下げられます。さらに、無料で試せて、世界中で10万人以上のユーザーに信頼されています。
面倒な作業なしでLinkedInスクレイピングを体験してみませんか? して、わずか2クリックでデータ抽出を始めましょう。営業チームも、あなたのLinkedInアカウントも、きっと喜ぶはずです。
さらに詳しく