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実行を新規作成して、名前とプロジェクト、メイン・モジュールを入力します。次回からは作成した実行構成を選択して実行します。
コンソールに以下のように出力されたら成功です。
次回は出勤計画表の集計をします。
ディスカッション
コメント一覧
まだ、コメントがありません