CoderCastrov logo
CoderCastrov
LinkedIn

Парсинг LinkedIn с помощью Python

Парсинг LinkedIn с помощью Python
просмотров
4 мин чтение
#LinkedIn

Как настроить скрипт на Python для парсинга профилей LinkedIn

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

В конце статьи вы можете найти рабочий скрипт на Python, полностью документированный, для сбора основной информации с LinkedIn.

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

Содержание статьи


1. Что такое парсинг

Парсинг - это техника, используемая для извлечения данных с веб-сайтов.

Если вы когда-либо копировали и вставляли информацию с веб-сайта, то выполняли ту же функцию, что и любой парсер, только в микроскопическом, ручном масштабе. https://scrapinghub.com/what-is-web-scraping

Технически, это можно сделать двумя способами:

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

В обоих случаях последний шаг - разбор страницы для извлечения контента.

Прямые HTTP-запросы

Как вы, возможно, знаете, веб-сайты представляют собой просто отображение HTML-кода и CSS, который веб-сервер возвращает в результате GET / POST запроса вашего браузера. В результате простого скрипта можно автоматически отправлять HTTP-запросы и анализировать ответ, парсить содержимое.

Пример

Из командной строки выполните следующую инструкцию:

curl -X GET [http://www.wikipedia.com](http://www.wikipedia.com)

В результате вы получите ответ соответствующего веб-сервера. Здесь вы можете увидеть скриншот из терминала MacOS.

screenshot

Вы можете выполнить указанную инструкцию на любом языке программирования, сохранить ответ и анализировать его соответствующим образом (см. следующий параграф "Парсинг веб-страниц с помощью Python и BeautifulSoup").

Управление веб-браузером

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

Чтобы преодолеть эту преграду, вы можете использовать драйвер веб-браузера (см. следующий параграф "Парсинг веб-страниц с помощью Selenium Web Driver").

Драйверы веб-браузера позволяют запускать реальный веб-браузер, позволяя вашему скрипту (на Python или других языках) эмулировать поведение пользователя на странице (в основном выполнение кода JavaScript через консоль браузера).

Таким образом, вы можете, например, эмулировать нажатие кнопки - предполагая, что это полезно для парсинга.

document.getElementById('buttonID').click()

2. Парсинг веб-страниц с помощью Python

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

Веб-драйвер Selenium

Selenium Web Driver - один из лучших веб-драйверов для Python (см. предыдущий пункт "Управление веб-браузером"). Он является частью фреймворка Selenium, который является переносимым фреймворком для тестирования веб-приложений.

Пример: Загрузка домашней страницы LinkedIn.com.

Взаимодействие с страницей: как выполнить JavaScript

Если вы откроете страницу профиля LinkedIn, вы увидите, что для парсинга адреса электронной почты необходимо нажать на ссылку "Контактная информация", подождать загрузки всплывающего окна, а затем - если пользователь предоставил адрес электронной почты - вы сможете увидеть его (и, соответственно, спарсить его).

Поэтому нам нужно эмулировать такое взаимодействие пользователя с помощью JavaScript:

Более подробная информация на Wikipedia:

Selenium принимает команды (отправленные на языке Selenese или через клиентское API) и отправляет их в браузер. Это реализуется через специальный драйвер браузера, который отправляет команды в браузер и получает результаты. Selenium WebDriver не требует специального сервера для выполнения тестов: вместо этого WebDriver непосредственно запускает экземпляр браузера и управляет им.

Beautiful Soup

Как вы можете видеть в предыдущем абзаце ("Взаимодействие с страницей"), инструкция browser.execute_script также может возвращать значение, возвращаемое кодом JavaScript (как в примере с извлечением электронной почты). В результате весь парсинг может быть выполнен таким образом.

Однако, если вам не нужно имитировать взаимодействие пользователя, а вам просто нужно пройти по структуре HTML, вы можете использовать библиотеку парсинга (например, Beautiful Soup), которая выполнит эту работу за вас.

Эта возможность может быть интересна для использования, если вы разрабатываете код для выполнения парсинга на нескольких экземплярах в случае большого объема данных.

Beautiful Soup - это библиотека на языке Python для извлечения данных из HTML и XML файлов. Она работает с вашим парсером, чтобы предоставить идиоматические способы навигации, поиска и изменения дерева разбора. Ссылка: crummy.com.

Пример: Получение имени профиля LinkedIn

3. Скрипт на Python для парсинга профилей LinkedIn

Вы можете бесплатно скачать мой инструмент для парсинга LinkedIn на Python здесь:

federicohaag/LinkedInScraping

Создает файл Excel, содержащий личные данные и последнюю должность всех предоставленных профилей LinkedIn...

github.com

  1. Полезные ресурсы 📚
  • Ищете лучшую книгу, где можно изучить Python? Вот она. 🔝
  • Новичок в программировании? Я предлагаю вам заглянуть сюда. 📘