🚀 LinkedIn Spider
このツールは、検知されることなく簡単にLinkedInのデータを抽出、エクスポート、自動化することができます。
✨ 主な機能
- 高度なフィルタ(所在地、接続タイプ、現在の会社、役職)を使用して、LinkedInのプロフィールを検索できます。
- キーワードでLinkedInの投稿を検索し、包括的なメタデータを抽出できます。
- 完全なプロフィール情報(経歴、学歴、スキル、連絡先詳細)を抽出できます。
- 会社の詳細情報を取得できます。
- 受信と送信の接続リクエストを取得できます。
- プロフィールに接続リクエストを送信できます。
- 会話リストと詳細な会話履歴を取得できます。
- 組み込みの検知回避とセッション管理機能があります。
🚀 クイックスタート
📦 インストール
好みのインストール方法を選択してください。
オプション1: pip(一般的な使用に推奨)
pip install linkedin-spider
pip install linkedin-spider[cli]
pip install linkedin-spider[mcp]
pip install linkedin-spider[all]
オプション2: uvを使用した開発環境のセットアップ
git clone https://github.com/vertexcover-io/linkedin-spider
cd linkedin-spider
uv sync
⚠️ 重要提示
LinkedInは反ボットメカニズムを強化したため、一時的にクッキーベースの認証に影響があります。信頼性の高いアクセスを得るために、メールアドレスとパスワードによる認証方法の使用をお勧めします。当社は、完全なクッキー認証サポートの復旧に積極的に取り組んでいます。
💻 使用例
1. Pythonライブラリ
既存のPythonアプリケーションに統合するのに最適です。
基本的な使用法
from linkedin_spider import LinkedinSpider, ScraperConfig
config = ScraperConfig(headless=True, page_load_timeout=30)
scraper = LinkedinSpider(
email="your_email@example.com",
password="your_password",
config=config
)
results = scraper.search_profiles("software engineer", max_results=10)
出力サンプル:
[
{
"name": "John Doe",
"title": "Senior Software Engineer at Google",
"location": "San Francisco, CA",
"profile_url": "https://linkedin.com/in/johndoe",
"connections": "500+"
},
{
"name": "Jane Smith",
"title": "Software Engineer at Microsoft",
"location": "Seattle, WA",
"profile_url": "https://linkedin.com/in/janesmith",
"connections": "200+"
}
]
posts = scraper.search_posts("artificial intelligence", max_results=10, scroll_pause=2.0)
出力サンプル:
[
{
"author_name": "John Doe",
"author_headline": "AI Research Scientist at OpenAI",
"author_profile_url": "https://linkedin.com/in/johndoe",
"connection_degree": "2nd",
"post_time": "2024-01-15T14:30:00+00:00",
"post_text": "Excited to share our latest research on [large language models](https://example.com/paper)...",
"hashtags": ["#AI", "#MachineLearning", "#Research"],
"links": ["https://example.com/paper"],
"post_url": "https://linkedin.com/feed/update/urn:li:activity:123456789",
"media_urls": ["https://media.licdn.com/dms/image/..."],
"likes_count": 1247,
"comments_count": 89,
"reposts_count": 234,
"comments": [
{
"author_name": "Jane Smith",
"author_profile_url": "https://linkedin.com/in/janesmith",
"comment_text": "Great insights! Looking forward to reading the full paper.",
"comment_time": "2024-01-15T15:45:00+00:00",
"reactions_count": 12
}
]
}
]
profile = scraper.scrape_profile("https://linkedin.com/in/someone")
出力サンプル:
{
"name": "John Doe",
"title": "Senior Software Engineer",
"location": "San Francisco, CA",
"about": "Passionate software engineer with 8+ years of experience...",
"experience": [
{
"title": "Senior Software Engineer",
"company": "Google",
"duration": "2021 - Present",
"description": "Leading backend development for search infrastructure..."
}
],
"education": [
{
"school": "Stanford University",
"degree": "BS Computer Science",
"years": "2013 - 2017"
}
],
"skills": ["Python", "Java", "Kubernetes", "AWS"]
}
company = scraper.scrape_company("https://linkedin.com/company/tech-corp")
出力サンプル:
{
"name": "TechCorp Inc",
"industry": "Software Development",
"company_size": "1,001-5,000 employees",
"headquarters": "San Francisco, CA",
"founded": "2010",
"specialties": ["Cloud Computing", "AI/ML", "Data Analytics"],
"description": "Leading technology company focused on enterprise solutions...",
"website": "https://techcorp.com",
"follower_count": "45,230"
}
scraper.close()
詳細な例はこちら : examples
2. コマンドラインインターフェース
迅速なデータ抽出やスクリプト作成に最適です。
linkedin-spider-cli search -q "product manager" -n 10 -o results.json --email your@email.com --password yourpassword
linkedin-spider-cli search-posts -k "artificial intelligence" -n 10 -s 2.0 -o posts.json --email your@email.com --password yourpassword
linkedin-spider-cli profile -u "https://linkedin.com/in/johndoe" -o profile.json --email your@email.com --password yourpassword
linkedin-spider-cli company -u "https://linkedin.com/company/openai" -o company.json --email your@email.com --password yourpassword
linkedin-spider-cli connections -n 20 -o connections.json --email your@email.com --password yourpassword
uv run linkedin-spider-cli search -q "product manager" -n 10 -o results.json --email your@email.com --password yourpassword
uv run linkedin-spider-cli search-posts -k "artificial intelligence" -n 10 -s 2.0 -o posts.json --email your@email.com --password yourpassword
uv run linkedin-spider-cli profile -u "https://linkedin.com/in/johndoe" -o profile.json --email your@email.com --password yourpassword
uv run linkedin-spider-cli company -u "https://linkedin.com/company/openai" -o company.json --email your@email.com --password yourpassword
uv run linkedin-spider-cli connections -n 20 -o connections.json --email your@email.com --password yourpassword
💡 使用建议
通常、--email と --password は一度だけ提供すればよいです。CLIは認証セッションを保存し、セッションが期限切れになるまで(通常は数時間または数日後)、その後のコマンドで再利用します。また、LINKEDIN_EMAIL と LINKEDIN_PASSWORD 環境変数を設定することで、繰り返し入力する手間を省くことができます。
3. MCPサーバ
.env ファイルに環境変数を設定します。
# 認証(1つの方法を選択)
LINKEDIN_EMAIL=your_email@example.com
LINKEDIN_PASSWORD=your_password
# または
LINKEDIN_COOKIE=your_li_at_cookie_value
# 設定
HEADLESS=true
# トランスポート(オプション、デフォルトはstdio)
TRANSPORT=sse
HOST=127.0.0.1
PORT=8000
MCPサーバを起動します。
linkedin-spider-mcp
linkedin-spider-mcp serve sse --email your@email.com --password yourpassword
linkedin-spider-mcp serve http --host 0.0.0.0 --port 9000 --email your@email.com --password yourpassword
linkedin-spider-mcp serve stdio --email your@email.com --password yourpassword
TRANSPORT=sse linkedin-spider-mcp serve
uv run linkedin-spider-mcp
uv run linkedin-spider-mcp serve sse --email your@email.com --password yourpassword
uv run linkedin-spider-mcp serve http --host 0.0.0.0 --port 9000 --email your@email.com --password yourpassword
uv run linkedin-spider-mcp serve stdio --email your@email.com --password yourpassword
TRANSPORT=sse uv run linkedin-spider-mcp serve
Claude Code統合
claude mcp add linkedin-spider --transport sse <server-url>
Claude Desktop統合
Claude Desktopの設定ファイルに追加します。
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
オプション1: Docker(推奨)
Dockerを使用することで、すべての依存関係を含んだ信頼性の高い分離実行が可能になります。
まず、Dockerイメージをビルドします。
docker build -f Dockerfile.stdio -t linkedin-mcp-stdio .
次に、Claude Desktopの設定にこれを追加します。
{
"mcpServers": {
"linkedin-spider": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"LINKEDIN_EMAIL=your_email@example.com",
"-e",
"LINKEDIN_PASSWORD=your_password",
"-e",
"HEADLESS=true",
"-e",
"TRANSPORT=stdio",
"linkedin-mcp-stdio"
]
}
}
}
Dockerによる開発とテスト
Dockerを使用した開発とテストでは、異なるトランスポート設定で単一のイメージを使用することができます。
Dockerイメージのビルド
docker build -t linkedin-mcp .
異なるトランスポートで実行する
SSEサーバ
docker run -p 8000:8000 -e TRANSPORT=sse --env-file .env linkedin-mcp
HTTPサーバ
docker run -p 8000:8000 -e TRANSPORT=http --env-file .env linkedin-mcp
STDIOサーバ
docker run --rm -i -e TRANSPORT=stdio --env-file .env linkedin-mcp
認証方法
方法1: LinkedInクッキー
- ブラウザでLinkedInにログインします。
- 開発者ツール(F12)を開きます。
- アプリケーション/ストレージ → クッキー → linkedin.comに移動します。
li_at クッキーの値をコピーします。
- コードで使用します。
scraper = LinkedinSpider(li_at_cookie="your_cookie_value")
方法2: メールアドレスとパスワード(推奨)
scraper = LinkedinSpider(
email="your_email@example.com",
password="your_password"
)
コントリビューション
コントリビューションを歓迎します!詳細なガイドラインは CONTRIBUTING.md をご覧ください。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
免責事項
このツールは個人利用のみを目的としています。以下のことを守ってください。
- LinkedInの利用規約を尊重してください。
- 適切なレート制限を使用してください。
- ユーザーをスパムや嫌がらせしないでください。
- 収集したデータを責任を持って扱ってください。
プロのようにLinkedInのデータを抽出する準備はできましたか? このリポジトリをスターして、スクレイピングを始めましょう!