pythonでConfluenceをスクレイピング#2

前回に続き、出社率を計算するプログラムをpythonで作っていきます。前回の記事はこちら↓

プロジェクト作成

まずはPydevプロジェクトを作成します。

プロジェクト名は「AttendanceRate」としておきます。インタープリターがPython3と表示されているのを確認して完了ボタンを押します。

Pydevモジュールの作成

Pydevモジュールを作成します。プロジェクトを右クリックして、「新規>Pydevモジュール」を選択します。

簡単なプログラムなのでパッケージを省略して、名前だけつけます。「attendance」として完了を押します。

テンプレートの選択画面が出てくるので、「モジュール:メイン」を選択します。

Pydevのデフォルト設定についても問い合わせがあったのでそのままOKします。

Atlassian APIを使うための準備

atlassian-python-apiをインストール

Python Atlassian REST API Wrapper(https://pypi.org/project/atlassian-python-api/)をインストールします。「ウィンドウ>設定」から「PyDev>インタープリター>Pythonインタープリター」を選択します。PythonインタープリターのPython3が選択されていることを確認し、「Manage with pip」を押します。

Manage pip画面で「Command to execute」に「install atlassian-python-api」を入力し実行します。

パッケージにatlassian-python-apiが追加されていることを確認し、インストール完了です。

Atlassianのクラウド製品でスクリプトを使用する場合は、APIトークンを使って認証するようです。(職場ではこの手順は不要でした。サーバー製品を使っているからなのかバージョンが異なるからなのかよくわかっていません…)

APIトークンの作成

https://id.atlassian.com/manage/api-tokens にログインします。「APIトークンを作成」をクリックし、トークンにラベルをつけて「作成」をクリックします。表示されたトークンをコピーして大事に保管します。
参考:https://ja.confluence.atlassian.com/cloud/api-tokens-938839638.html

Confluenceにアクセスしてみる

ようやくコードを書ける環境が整いました。現実世界の時間にしてまだ10分ぐらいでしょうか。Aくんの残り時間は20分ですね。急ぎましょう。

Python APIのドキュメント(https://pypi.org/project/atlassian-python-api/)を参照しつつ、コードを書きます。

from atlassian import Confluence

if __name__ == '__main__':
    confluence = Confluence(
        url='https://<site-name>.atlassian.net/wiki/',
        username='<mail address>',
        password='<API token>')

    page = confluence.get_page_by_id('<pageId>', expand='body.storage')
    print(page)

urlにはconfluenceのサイト名を入れます。usernameとpasswordはそれぞれ、メールアドレスと準備で取得したAPIトークンを入れます。pageIdについては、出勤計画ページのURLのidを確認し入力します。

実行構成を作成し、早速実行してみます。Eclipseのメニューから「実行>実行構成」を開きます。

Python実行を新規作成して、名前とプロジェクト、メイン・モジュールを入力します。次回からは作成した実行構成を選択して実行します。

コンソールに以下のように出力されたら成功です。

次回は出勤計画表の集計をします。