LoginSignup
6
4

More than 3 years have passed since last update.

Linkedin プロフィール情報の取得

Last updated at Posted at 2019-04-18

Linkedin プロフィール情報を取得する方法を調べていました。その際にlinkedin-apiという便利なthird-party pythonライブラリを発見したので共有します。

概要

LinkedinはAPIを提供しているので他サービスと同じくLinkedin developersにappを登録してOAuth2経由で情報取得を図るのは可能です。ただ、少し煩雑になります。(まあ、慣れている方だとすっとできるものだと思いますが)

OAuth2 APIを利用した情報取得に関しては以下の記事で良くまとめられています。

【LinkedIn】OAuth2 API まとめ

一方、linkedin-apiはLinkedin developersにいって登録とかの処理をいらず、アカウント名とパスワードだけで利用可能なので非常に便利です。

このライブラリを使うことで、プロフィール、プロフィールのつながり、プロフィールスキルタグ、連絡先、学歴、職歴情報などを取得することが可能です。(詳細機能はこちらを参照してください。)

しかし、ライブラリのreadmeページに作者も書いてあるように、こちらのプロジェクトは勉強用に軽く使うのを推薦します。なぜなら、このような使い方はLinkedinの利用契約を違反していて、いざとなったらアカウントの凍結に繋がる可能性もあるためです。

今回の場合も、ただ便利なものを発見したので共有するだけで、実際のプロジェクトでは使っていません。

作者の原文

USE AT YOUR OWN RISK 😉
This project should only be used as a learning project. 
Using it would violate Linkedin's User Agreement. 
I am not responsible for your account being blocked 
(which they will definitely do - see User Agreement section 8.2). 
Hint: don't use a Linkedin account that you care about)

使い方

インストール

pip install linkedin-api

プロフィール情報取得

from linkedin_api import Linkedin
LINKEDIN_ACCOUNT = 'email'
LINKEDIN_PWD = 'password'

# URL: https://www.linkedin.com/in/yyyyy
LINKEDIN_USER_ID = 'yyyyy'

api = Linkedin(LINKEDIN_ACCOUNT, LINKEDIN_PWD)
profile = api.get_profile(LINKEDIN_USER_ID)

他の情報取得はこちらを参照してください。

プロフィールアイコンの取得

今回のライブラリではプロフィールアイコンを取得する関数が定義されていなかったので、自分で定義しました。
後になって発見したんですが、プロフィールアイコンの取得は自分のアイコンしか拾えないことがわかりました。

def get_profile_icon(profile):
    profile_icon = None
    if profile == {}:
        return profile_icon

    if 'profilePictureOriginalImage' in profile.keys():
        profile_icon = profile['profilePictureOriginalImage']
        if 'com.linkedin.common.VectorImage' in profile_icon.keys():
            profile_icon = profile_icon['com.linkedin.common.VectorImage']
            rootUrl = None
            path = None

            if 'rootUrl' in profile_icon.keys():
                rootUrl = profile_icon['rootUrl']
            if 'artifacts' in profile_icon.keys():
                path = profile_icon['artifacts']
                if len(path) != 0:
                    path = path[0]['fileIdentifyingUrlPathSegment']
            if rootUrl is not None and path is not None:
                profile_icon = '{}{}'.format(rootUrl, path)

    return profile_icon

まとめ

今回は第三者が開発したLinkedinのPython Wrapperを紹介しました。
便利ではあるもののリスクが伴うものなので使う場合は自己責任で使ってください。

6
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4