Как парсить данные о компаниях LinkedIn с использованием API Voyager
Table Of Content
- Что такое парсинг LinkedIn?
- Что такое REST API Voyager?
- Output
- 'SEO and SEM', 'Joomla'],
- We have a proven track record of successfully meeting deadlines and executing the most complex projects within budget while consistently maintaining the highest quality.\n\nOur specialities:\n\n● Mobile app development
- 'miniCompany': {'objectUrn': 'urn:li:company:16198870', 'entityUrn': 'urn:li:fs_miniCompany:16198870', 'name': 'ByteScrum Technologies Private Limited',
- 'showcase': False,
- 'logo': {'com.linkedin.common.VectorImage': {'artifacts': [{'width': 200, 'fileIdentifyingUrlPathSegment': '200_200/0/1653201669588?e=1698883200&v=beta&t=GE_5HHCt3u_xxKWDV1d3KmNBx0-AJXvIyjkIxSaXp-E',
- 'expiresAt': 1698883200000, 'height': 200}, {'width': 100, 'fileIdentifyingUrlPathSegment': '100_100/0/1653201669588?e=1698883200&v=beta&t=rbIH_vzfS4YkrOV-inNhuY9XXdbj28K9l4ZY_4-I41o',
- '400_400/0/1653201669588?e=1698883200&v=beta&t=rARzTyswXT1D9vObNkCAh9ljFivi4r6T0QxC_WwLVvQ', 'expiresAt': 1698883200000, 'height': 400}],
- Заключение
- Ресурсы
Что такое парсинг LinkedIn?
Парсинг LinkedIn - это процесс извлечения данных с веб-сайта LinkedIn с использованием автоматизированных скриптов или инструментов. Он включает сбор информации с профилей, страниц компаний, вакансий и других общедоступных данных.
С другой стороны, парсинг веб-сайтов включает автоматическое сбор данных с веб-сайтов путем отправки HTTP-запросов и извлечения конкретной информации из HTML-контента.
Примечание: Однако нарушение условий использования LinkedIn может привести к блокировке аккаунта, блокировке IP-адреса или правовым действиям.
Важно ознакомиться с условиями использования веб-сайта и руководством по использованию API, чтобы избежать правовых или этических проблем.
Что такое REST API Voyager?
REST API Voyager позволяет разработчикам интегрировать корпоративные приложения с платформой геопространственного поиска Voyager. Он предоставляет веб-интерфейс для исследования и взаимодействия с данными и сервисами Voyager.
Voyager предлагает два типа открытых интерфейсов: XML через HTTP и RESTful API. LinkedIn разработала API Voyager, новый сервис API, чтобы обеспечить более надежную платформу для веб- и мобильных приложений на основе фреймворка Play и языка запросов GraphQL.
Как получить JSESSIONID и CSRF-токен:
JSESSIONID: При доступе пользователя к веб-сайту веб-сервер генерирует уникальный идентификатор, называемый JSESSIONID.
- Он часто сохраняется веб-браузером, используемым пользователем, в виде cookie и отправляется вместе с последующими запросами для идентификации сеанса пользователя.
- JSESSIONID можно получить, просматривая cookie в инструментах разработчика вашего браузера при посещении страницы.
- Ищите cookie со строкой "JSESSIONID" или что-то подобное. Пожалуйста, помните, что некоторые веб-сайты могут использовать отдельные имена cookie для отслеживания сеанса.
CSRF-токен: CSRF-токен (токен межсайтовой подделки запроса) - это мера безопасности, предотвращающая отправку неавторизованных запросов со вредоносных веб-сайтов.
- Он часто необходим при выполнении запросов POST, PUT или DELETE к веб-сервисам.
- Способ получения CSRF-токена зависит от веб-сайта или онлайн-сервиса. В некоторых случаях токен скрыт в форме веб-страницы и может быть извлечен с помощью техник парсинга веб-страниц.
- При выполнении первого вызова GET к веб-сервису CSRF-токен может быть отправлен в заголовках ответа. В таких случаях токен может быть извлечен из заголовков ответа и использован в последующих запросах по мере необходимости.
Пошаговые руководства с использованием модуля Python для выполнения HTTP-запросов.
def getdatafromvoyagerlinkedin(company_id):
headers = {"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36",
}
company_link = f'https://www.linkedin.com/voyager/api/entities/companies/{company_id}'
with requests.session() as s:
s.cookies['li_at'] = "AQEDATf5D_XXXXXXXXXXXXXXu"
s.cookies["JSESSIONID"] = "ajax:1XXXXXXXXXXXXXX0"
s.headers = headers
s.headers["csrf-token"] = s.cookies["JSESSIONID"].strip('"')
response = s.get(company_link)
response_dict = response.json()
return response_dict
print(getdatafromvoyagerlinkedin(16198870))
# Output
#{'employeeCountRange': '11-50',
#'specialties': ['Web Development',
#'Mobile App Development', 'Web Design',
#'Node', 'Flutter', 'Ionic', 'AWS', 'Digital Ocean', 'Laravel', 'WordPress',
#'React Native', 'React JS experts', 'PHP development', 'PrestaShop', 'OpenCart',
# 'SEO and SEM', 'Joomla'],
#'entityUrn': 'urn:li:fs_company:16198870',
#'websiteUrl': 'https://www.bytescrum.com',
#'companyType': 'Privately Held', 'foundedDate': {'year': 2017},
#'entityInfo': {'objectUrn': 'urn:li:company:16198870',
#'trackingId': 'ymxYkL2eSUSOWQIt+Mn3xQ=='},
#'industries': ['Information Technology and Services'],
#'description': 'ByteScrum taps into its strong business acumen to find solutions to the unique set of challenges and constraints imposed by each new project and delivers solutions that fill performance gaps.
#Our founders understood for the first time how good software development services can transform the needs of entire business communities, especially emerging technologies.
# We have a proven track record of successfully meeting deadlines and executing the most complex projects within budget while consistently maintaining the highest quality.\n\nOur specialities:\n\n● Mobile app development
#(Android and iOS)\n● Web app development (MERN, MEAN, Vue JS, PHP, Laravel, WordPress)\n● Custom Software development\n● Web designing (PSD to HTML/WordPress)\n● Api integration \n●
#CMS development\n● Web and app service integration\n● SEO and SEM services\n\nContact Us:\nhttps://www.bytescrum.com/contact-us/',
#'basicCompanyInfo': {'headquarters': 'Lucknow',
#'followingInfo': {'entityUrn': 'urn:li:fs_followingInfo:urn:li:company:16198870',
#'dashFollowingStateUrn': 'urn:li:fsd_followingState:urn:li:fsd_company:16198870', 'following': False, 'trackingUrn': 'urn:li:company:16198870', 'followingType': 'DEFAULT'},
# 'miniCompany': {'objectUrn': 'urn:li:company:16198870', 'entityUrn': 'urn:li:fs_miniCompany:16198870', 'name': 'ByteScrum Technologies Private Limited',
# 'showcase': False,
#'active': True,
# 'logo': {'com.linkedin.common.VectorImage': {'artifacts': [{'width': 200, 'fileIdentifyingUrlPathSegment': '200_200/0/1653201669588?e=1698883200&v=beta&t=GE_5HHCt3u_xxKWDV1d3KmNBx0-AJXvIyjkIxSaXp-E',
# 'expiresAt': 1698883200000, 'height': 200}, {'width': 100, 'fileIdentifyingUrlPathSegment': '100_100/0/1653201669588?e=1698883200&v=beta&t=rbIH_vzfS4YkrOV-inNhuY9XXdbj28K9l4ZY_4-I41o',
#'expiresAt': 1698883200000, 'height': 100}, {'width': 400, 'fileIdentifyingUrlPathSegment':
# '400_400/0/1653201669588?e=1698883200&v=beta&t=rARzTyswXT1D9vObNkCAh9ljFivi4r6T0QxC_WwLVvQ', 'expiresAt': 1698883200000, 'height': 400}],
#'rootUrl': 'https://media.licdn.com/dms/image/C4D0BAQHzTgUzh6WpUw/company-logo_'}}, 'universalName': 'bytescrum', 'dashCompanyUrn': 'urn:li:fsd_company:16198870',
#'trackingId': 'XXXXXXXXXXXXXXXXX'}}}
LinkedIn теперь предоставляет уникальный идентификатор для каждой страницы компании, что упрощает его обнаружение. После получения этого идентификатора замените его в коде на нужный.
Заключение
Скрапинг LinkedIn и веб-парсинг - это два способа получения информации с веб-сайта LinkedIn. В то время как скрапинг LinkedIn направлен на сбор общедоступных данных, веб-парсинг направлен на механическое извлечение определенной информации с веб-сайтов с использованием HTTP-запросов и разбора HTML.
Соблюдение условий использования LinkedIn крайне важно, чтобы избежать возможных наказаний, таких как блокировка аккаунта или правовые действия. REST API Voyager позволяет корпоративным приложениям интегрироваться с их поисковым движком географического поиска без проблем.
JSESSIONID - это уникальный идентификатор, предоставляемый сервером веб-сайта, а CSRF-токен защищает от нежелательных запросов. Оба доступны через файлы cookie веб-браузера, инструменты веб-парсинга или заголовки ответа.
Знание правил извлечения данных и этических вопросов крайне важно при работе с веб-парсингом и API, такими как Voyager.
Если вам интересна эта публикация, найдите еще увлекательные публикации на блоге Learnhub; мы пишем о всем, что связано с технологиями, от облачных вычислений до фронтенд-разработки, кибербезопасности, искусственного интеллекта и блокчейна.
Источник: ByteScrum