Парсинг LinkedIn открывает доступ к ценным данным для рекрутинга, продаж и маркетинговых исследований. Это руководство покажет вам, как извлекать профили, страницы компаний и ленты LinkedIn с помощью Python и CrawlbaseАвтора Crawling API.

Содержание

Зачем сканировать LinkedIn?

Извлечение данных LinkedIn дает значительные преимущества:

Изображение, на котором перечислены причины, по которым важно копировать вакансии LinkedIn
  1. Поиск талантов: автоматизируйте поиск кандидатов и быстрее находите квалифицированных специалистов
  2. Продажи и генерация лидов: Отделы продаж могут просматривать профили LinkedIn для сбора лидов, отслеживать их использование при холодных звонках или разрабатывать целевые стратегии охвата.
  3. Исследования рынка: Мониторинг конкурентов, тенденций отрасли и рыночных показателей
  4. Анализ рынка труда: Отслеживайте тенденции найма, тенденции заработной платы и востребованные навыки
  5. Академическое исследование: Соберите наборы данных о профессиональных связях и карьерных траекториях.

Какие данные мы можем извлечь из LinkedIn?

Профили в LinkedIn:

  • Личная информация: Имена, должности, текущие и прошлые должности, образование, навыки, одобрения и рекомендации.
  • Контактная информация: адреса электронной почты, номера телефонов (если они общедоступны) и профили в социальных сетях.
  • Вовлеченность: Посты, статьи и другой контент, которым поделился или который понравился пользователю.

Страницы компании:

  • Информация о компании: Название, отрасль, размер, местоположение, веб-сайт и описание компании.
  • Объявления о поиске работы: Текущие вакансии, описания вакансий, требования и ссылки для подачи заявлений.
  • Информация о сотрудниках: Список сотрудников, их роли и связи внутри компании.
  • Обновления и новости: Публикации, статьи и обновления компании, размещенные на ее странице.

Ленты LinkedIn:

  • Новостная лента: Последние обновления, публикации и статьи от пользователей и компаний, которые вас интересуют.
  • Показатели вовлеченности: Лайки, комментарии, репосты и общая вовлеченность публикаций.
  • Анализ содержания: типы контента, которым делятся, популярные темы и модели взаимодействия с пользователями.

Проблемы и решения парсинга

Анализ данных LinkedIn может предоставить ценные данные, но он также сопряжен с определенными трудностями.

Изображение, демонстрирующее потенциальные проблемы, возникающие при извлечении данных из LinkedIn, перечисленные ниже.

Меры против царапин

  • Вызов: блокировка IP и CAPTCHA
  • Решение: Crawlbase обеспечивает ротацию прокси-серверов и обработку CAPTCHA

Динамический контент

  • Вызов: Страницы, визуализированные с помощью JavaScript
  • Решение: Используйте headless-браузеры или Crawlbaseдвижок рендеринга
  • Вызов: Ограничения Условий обслуживания LinkedIn
  • Решение: Сосредоточьтесь только на общедоступных данных и уважайте законы о конфиденциальности

Объем данных

  • Вызов: Обработка больших наборов данных
  • Решение: Асинхронные запросы и структурированное хранилище

Начало работы с Crawlbase

Чтобы скопировать данные LinkedIn, используйте CrawlbaseАвтора Crawling APIВам необходимо настроить среду Python. Перед началом работы ознакомьтесь с Цены в LinkedIn здесь.

1. Установите Python:

Загрузите и установите Python с Официальном сайте. Обязательно добавьте Python в системную переменную PATH во время установки.

2. Создайте виртуальную среду:

Откройте терминал или командную строку и перейдите в каталог вашего проекта. Создайте виртуальную среду, запустив:

1
python -m венв венв

Активируйте виртуальную среду:

  • В Windows:

    1
    .\venv\Скрипты\активировать
  • На macOS/Linux:

    1
    источник venv/bin/активировать

3. Устанавливать Crawlbase Библиотека:

Активировав виртуальную среду, установите Crawlbase библиотека с использованием pip:

1
pip установить crawlbase

Извлечение профилей LinkedIn:

Начните с импорта необходимых библиотек и инициализации Crawlbase API с вашим токеном доступа. Определите URL-адрес профиля LinkedIn, который вы хотите скопировать, и задайте параметры скопирования.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
от база сканирования Импортировать CrawlingAPI
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_API_ТОКЕН' })

URL = «https://www.linkedin.com/in/kaitlyn-owen»

варианты = {
«скребок»: 'linkedin-профиль',
«асинхронный»: 'правда'
}

# Функция для создания запроса с использованием Crawlbase API
защиту make_crawlbase_request(URL):
ответ = crawling_api.get(url, параметры)
if ответ['status_code'] == 200:
возвращают json.loads(ответ['тело'].decode('латинский1'))
еще:
Распечатать(«Не удалось загрузить страницу. Код статуса:», ответ['status_code'])
возвращают Ничто

защиту scrape_profile(URL):
стараться:
json_response = make_crawlbase_request(url)
if json_response:
возвращают json_response
кроме Исключение as e:
Распечатать(f"Запрос не удался: {е}")

возвращают Ничто

if __имя__ == '__главный__':
scraped_data = scrape_profile(URL)
Распечатать(json.dumps(scraped_data, indent=2))

Этот скрипт инициализирует Crawlbase API, определяет URL-адрес профиля LinkedIn для извлечения и использует linkedin-profile Скребок. Он делает асинхронный запрос на извлечение данных профиля и выводит ответ JSON.

Пример вывода:

1
2
3
{
"избавлять": "1dd4453c6f6bd93baf1d7e03"
}

Извлечение данных из Crawlbase Cloud Storage:

При использовании асинхронных запросов, Crawlbase Cloud Storage сохраняет ответ и предоставляет идентификатор запроса (rid). Вам нужно использовать этот rid для извлечения данных.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
от база сканирования Импортировать StorageAPI
Импортировать JSON

# Инициализация Crawlbase Cloud Storage с вашим токеном доступа
storage_api = API_хранилища({ токен: 'ВАШ_API_ТОКЕН' })

РИD = 'your_request_identifier'

# Функция для извлечения данных из Crawlbase диск
защиту извлечь_данные(избавиться):
ответ = storage_api.get(rid)
if ответ['status_code'] == 200:
возвращают json.loads(ответ['тело'].decode('латинский1'))
еще:
Распечатать(«Не удалось получить данные. Код статуса:», ответ['status_code'])
возвращают Ничто

if __имя__ == '__главный__':
извлеченные_данные = извлеченные_данные(RID)
Распечатать(json.dumps(полученные_данные, отступ=2))

Этот скрипт извлекает сохраненный ответ с помощью RID и выводит данные JSON.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"краткое содержание": [«Я целеустремленный профессионал, который стремится лично помогать хирургам…»],
"деятельность": [
{
"заглавие": «С разрешения — 4 года после эксплантации инфицированного аортального трансплантата, установленного в другом местном учреждении. Играю в гольф и люблю жизнь. Всего самого наилучшего…»,
"связь": "https://www.linkedin.com/posts/peter-rossi-md-facs-dfsvs-9393b934_aorta-aortaed-activity-7185799259269525504-DI5k?trk=public_profile",
"изображение": "https://media.licdn.com/dms/image/D5622AQFKrMD3lTsK3w/feedshare-shrink_2048_1536/0/1713228047686?e=2147483647&v=beta&t=eZ4Blo9-IEPoDaF7TgUQbm-gFtDmRGTaW1uZOqLWEM4",
"атрибуции": {
"заглавие": "Понравилось Кейтлин Оуэн",
"связь": "https://www.linkedin.com/in/kaitlyn-owen?trk=public_profile_actor-name"
}
},
{
"заглавие": «Кейтлин Оуэн»,
"позиция": "",
"связь": "https://www.linkedin.com/in/kaitlyn-owen-1a469575?trk=public_profile_samename-profile",
"изображение": нуль,
"расположение": «Редмонд, Вашингтон»
}
],
"похожиеПрофили": []
}

Сбор страниц компаний

Использовать linkedin-company Скребок для сбора организационных данных:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
от база сканирования Импортировать CrawlingAPI
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_API_ТОКЕН' })

URL = 'https://www.linkedin.com/company/amazon'

варианты = {
«скребок»: 'linkedin-компания',
«асинхронный»: 'правда'
}

# Функция для создания запроса с использованием Crawlbase API
защиту make_crawlbase_request(URL):
ответ = crawling_api.get(url, параметры)
if ответ['status_code'] == 200:
возвращают json.loads(ответ['тело'].decode('латинский1'))
еще:
Распечатать(«Не удалось загрузить страницу. Код статуса:», ответ['status_code'])
возвращают Ничто

защиту scrape_company(URL):
стараться:
json_response = make_crawlbase_request(url)
if json_response:
возвращают json_response
кроме Исключение as e:
Распечатать(f"Запрос не удался: {е}")

возвращают Ничто

if __имя__ == '__главный__':
scraped_data = scrape_company(URL)
Распечатать(json.dumps(scraped_data, indent=2))

Этот скрипт инициализирует Crawlbase API, устанавливает URL-адрес страницы компании LinkedIn, которую вы хотите скопировать, и указывает linkedin-company Скрапер. Затем скрипт делает асинхронный запрос на извлечение данных компании и выводит ответ JSON.

Пример вывода:

1
2
3
{
"избавлять": "f270321bbebe203b43cebedd"
}

Извлечение данных из Crawlbase Cloud Storage

Как и при извлечении профиля, асинхронные запросы будут возвращать rid, Вы можете использовать это rid для извлечения сохраненных данных.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
от база сканирования Импортировать StorageAPI
Импортировать JSON

# Инициализация Crawlbase Cloud Storage с вашим токеном доступа
storage_api = API_хранилища({ токен: 'ВАШ_API_ТОКЕН' })

РИD = 'your_request_identifier'

# Функция для извлечения данных из Crawlbase диск
защиту извлечь_данные(избавиться):
ответ = storage_api.get(rid)
if ответ['status_code'] == 200:
возвращают json.loads(ответ['тело'].decode('латинский1'))
еще:
Распечатать(«Не удалось получить данные. Код статуса:», ответ['status_code'])
возвращают Ничто

if __имя__ == '__главный__':
извлеченные_данные = извлеченные_данные(RID)
Распечатать(json.dumps(полученные_данные, отступ=2))

Этот скрипт извлекает и распечатывает сохраненные данные компании с помощью RID.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"заглавие": «Амазонка»,
"Заголовок": "Разработка программного обеспечения",
"обложка_изображения": "https://media.licdn.com/dms/image/D4D3DAQGri_YWxYb-GQ/image-scale_191_1128/0/1681945878609/amazon_cover?e=2147483647&v=beta&t=DEHImsFhQdlARMSTcY2AmdImxdLxIyvDncPmPQEpebY",
"изображение_компании": "https://media.licdn.com/dms/image/C560BAQHTvZwCx4p2Qg/company-logo_200_200/0/1630640869849/amazon_logo?e=2147483647&v=beta&t=2vRB20XZOYNtXSr5GHAUUQXXII4lvgcotA2QTMcRHOI",
"URL": "https://www.linkedin.com/company/amazon",
"сотрудники": {
"количествоСотрудников": 737833,
"связь": "https://www.linkedin.com/search/results/people/?facetCurrentCompany=%5B15218805%2C+2649984%2C+17411%2C+78392228%2C+208137%2C+61712%2C+2382910%2C+49318%2C+16551%2C+80073065%2C+47157%2C+21433%2C+71099%2C+860467%2C+12227%2C+167364%2C+4787585%2C+11091426%2C+451028%2C+111446%2C+14951%2C+46825%2C+2320329%2C+34924%2C+1586%5D"
},
{
"адрес": «Марсель-Бройер-Штрассе 12, Мюнхен, Бавария 80807, Германия»,
"связь": "https://www.bing.com/maps?where=Marcel-Breuer-Stra%C3%9Fe+12+Munich+80807+Bavaria+DE&trk=org-locations_url"
}
]
},
"сотрудникиAtCompany": [
{
"заглавие": «Стивен Хэтч»,
"позиция": «Опытный руководитель по инжинирингу Amazon | Генеративный ИИ в Amazon»,
"связь": "https://www.linkedin.com/in/hatch?trk=org-employees",
"изображение": "https://media.licdn.com/dms/image/D4E03AQG823Q38d3Igg/profile-displayphoto-shrink_100_100/0/1673281011530?e=2147483647&v=beta&t=sK2PKC8tMDWU5koa0DpKxZzhQ1Zofs1shi941xNscrQ",
"расположение": ""
},

Сбор данных из лент LinkedIn

Мониторинг потоков активности с помощью linkedin-feed скребок:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
от база сканирования Импортировать CrawlingAPI
Импортировать JSON

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_API_ТОКЕН' })

URL = 'https://www.linkedin.com/feed/update/urn:li:activity:7022155503770251267'

варианты = {
«скребок»: 'linkedin-канал',
«асинхронный»: 'правда'
}

# Функция для создания запроса с использованием Crawlbase API
защиту make_crawlbase_request(URL):
ответ = crawling_api.get(url, параметры)
if ответ['status_code'] == 200:
возвращают json.loads(ответ['тело'].decode('латинский1'))
еще:
Распечатать(«Не удалось загрузить страницу. Код статуса:», ответ['status_code'])
возвращают Ничто

защиту scrape_feed(URL):
стараться:
json_response = make_crawlbase_request(url)
if json_response:
возвращают json_response
кроме Исключение as e:
Распечатать(f"Запрос не удался: {е}")

возвращают Ничто

if __имя__ == '__главный__':
scraped_data = scrape_feed(URL)
Распечатать(json.dumps(scraped_data, indent=2))

Пример вывода:

1
2
3
{
"избавлять": "977b3381ab11f938d6522775"
}

Извлечение данных из Crawlbase Cloud Storage

Как и при извлечении профилей и страниц компаний, асинхронные запросы будут возвращать rid, Вы можете использовать это rid для извлечения сохраненных данных.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
от база сканирования Импортировать StorageAPI
Импортировать JSON

# Инициализация Crawlbase Cloud Storage с вашим токеном доступа
storage_api = API_хранилища({ токен: 'ВАШ_API_ТОКЕН' })

РИD = 'your_request_identifier'

# Функция для извлечения данных из Crawlbase диск
защиту извлечь_данные(избавиться):
ответ = storage_api.get(rid)
if ответ['status_code'] == 200:
возвращают json.loads(ответ['тело'].decode('латинский1'))
еще:
Распечатать(«Не удалось получить данные. Код статуса:», ответ['status_code'])
возвращают Ничто

if __имя__ == '__главный__':
извлеченные_данные = извлеченные_данные(RID)
Распечатать(json.dumps(полученные_данные, отступ=2))

Этот скрипт извлекает и распечатывает сохраненные данные фида с помощью rid.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"корм": [
{
"текст": «#AlphabetInc сокращает 12,000 10,000 рабочих мест, заявил ее генеральный директор в служебной записке. Сокращения стали последним событием, потрясшим сектор #технологий, и произошли через несколько дней после того, как конкурирующая корпорация Microsoft Corp заявила, что уволит 2 4 работников. Полный отчет — https://lnkd.in/dfxXcXNUMXNXNUMX»,
"изображения": [
"https://media.licdn.com/dms/image/C4D22AQHvTzTp5mnMcg/feedshare-shrink_2048_1536/0/1674212335928?e=2147483647&v=beta&t=Aq3WKkxF1Q5ZwGB6ax6OOWRtCW7Vlz8KDdpBvvK4K_0"
],
"видео": [],
"датавремя": "1й",
"postUrl": "https://in.linkedin.com/company/hindustantimes?trk=public_post_feed-actor-image",
"Username": "Хиндустан Таймс",
"reactionCount": 1177,
"комментарииКоличество": 13,
"ссылки": [
{
"текст": "#AlphabetInc",
"URL": "https://www.linkedin.com/signup/cold-join?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Ffeed%2Fhashtag%2Falphabetinc&trk=public_post-text"
},
{
"текст": "#технология",
"URL": "https://www.linkedin.com/signup/cold-join?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Ffeed%2Fhashtag%2Ftechnology&trk=public_post-text"
},

Достигните своих карьерных целей с помощью Crawlbase

Анализ данных LinkedIn может предоставить ценную информацию для различных приложений: от анализа рынка труда до конкурентных исследований. Crawlbase автоматизировать процесс сбора данных LinkedIn, что позволит вам сосредоточиться на анализе и использовании информации. Crawlbaseмощный Crawling API и Python, вы можете эффективно извлекать данные из профилей LinkedIn, страниц компаний и каналов.

Если вы хотите расширить свои возможности по парсингу веб-сайтов, рассмотрите возможность изучения наших следующих руководств по парсингу других важных веб-сайтов.

📜 Как скопировать объявления о вакансиях Indeed
📜 Как извлечь электронные письма из LinkedIn
📜 Как скрейпить Airbnb
📜 Как скрейпить Realtor.com
📜 Как скрейпить Expedia

Если у вас есть какие-либо вопросы или пожелания, наш команда поддержки всегда готов помочь вам в вашем путешествии по веб-скрапингу. Счастливого скрапинга!

Часто задаваемые вопросы (FAQ):

Парсинг LinkedIn является законным, если вы не нарушаете условия обслуживания LinkedIn. Важно ознакомиться с политикой LinkedIn и убедиться, что ваши действия по парсингу соответствуют правовым и этическим нормам. Всегда уважайте законы о конфиденциальности и защите данных и рассмотрите возможность использования официально предоставленных API, если они доступны.

В. Как скопировать данные из LinkedIn?

Для скрейпинга LinkedIn вы можете использовать CrawlbaseАвтора Crawling API. Сначала настройте среду Python и установите Crawlbase библиотека. Выберите подходящий скрапер для ваших нужд (профиль, компания или фид) и делайте асинхронные запросы для сбора данных. Извлеките данные с помощью Crawlbase Cloud Storage, который сохраняет ответ для легкого доступа.

В. Какие сложности возникают при извлечении данных из LinkedIn?

Скрапинг LinkedIn сопряжен с несколькими трудностями. LinkedIn имеет серьезные меры по борьбе с скрэпингом, которые могут блокировать ваши действия. Динамичный характер контента LinkedIn затрудняет последовательное извлечение данных. Кроме того, вы должны обеспечить соблюдение правовых и этических стандартов, поскольку нарушение условий обслуживания LinkedIn может привести к блокировке учетной записи или судебному преследованию. Использование надежного инструмента, такого как Crawlbase может помочь смягчить некоторые из этих проблем, предоставив надежные возможности парсинга и придерживаясь передовых практик.

В. Какой скрапер лучше всего подходит для подбора персонала?

Парсер профилей LinkedIn идеально подходит для подбора персонала, позволяя извлекать информацию о кандидатах, включая опыт работы, навыки и образование. Используйте его вместе со парсером профилей компаний для поиска потенциальных работодателей.

В. Могу ли я одновременно сканировать несколько профилей?

Да, используйте асинхронные запросы для эффективного извлечения данных из нескольких профилей. Crawlbase поддерживает до 20 запросов в секунду, а Storage API позволяет получить все результаты, используя их уникальные идентификаторы запросов (rid).