#はじめに
connpassは便利。APIは便利。Pythonは便利。全部まとめてconnpassのAPIをPythonから動かす。
#環境
PC:Raspberry Pi 3 Model B+
OS:Raspbian GNU/Linux 9.4 (stretch)
Python3.5.3
requests:2.12.4
beautifulsoup4.6.3
#インストール
ターミナルを開いて、以下のコマンドを入力する。
$ sudo pip3 install requests beautifulsoup4
#connpassのAPIについて
詳しい仕様が公式サイトにあるので、ご覧になることをお勧めする。イベントの概要やID、開催場所の緯度・開度に至るまで取得できる。今回は「ユーザー名を入力するとその人が参加・予約したイベントを表示する」というプログラムを紹介する。
#本題
全体のプログラムはこんな感じ。
import requests
import bs4
def main():
name = None
while name != "":
name = input("検索したいユーザー名を入力してください。")
userSearch(name)
def userSearch(nickname):
url = "https://connpass.com/api/v1/event?nickname=" + nickname
data = requests.get(url).json()
events = data["events"]
print(nickname + "は以下のイベントに参加、もしくは予約しました。\n")
for event in events:
for k, v in event.items():
if k == "owner_nickname":
print("開催者:")
print(v)
if k == "place":
print("場所:")
print(v)
if k == "title":
print("イベント名:")
print(v)
print("\n")
main()
#仕組み
##import
まず、必要なモジュールを読み込む。requestsはウェブページのソースコードを取ってくるモジュールで、bs4(beautifulsoup4)は、そこから抜き出しを行うためのモジュール。
import requests
import bs4
##main()
メイン処理は以下のようになっている。
def main():
name = None
while name != "":
name = input("検索したいユーザー名を入力してください。")
userSearch(name)
検索したいユーザー名を入力すると、何かが入力される限りuserSearch()を実行する。
##userSearch()
取ってくるURLを生成。
url = "https://connpass.com/api/v1/event?nickname=" + nickname
ダウンロード。
data = requests.get(url).json()
参加したイベント一覧を取得。
events = data["events"]
メッセージ表示して、
print(nickname + "は以下のイベントに参加、もしくは予約しました。\n")
実行。
for event in events: #参加したイベントを順番に取得
for k, v in event.items(): #辞書形式のイベント情報を順番に取得
if k == "owner_nickname": #開催者名を取得
print("開催者:")
print(v)
if k == "place": #場所を取得
print("場所:")
print(v)
if k == "title": #イベント名を取得
print("イベント名:")
print(v)
print("\n")
最後にまとめて実行。
main()
#終わりに
紹介した機能は一部でしたが、リファレンスを見れば、開催地の座標から「参加したイベントの会場で一番北だったのはどこか」を調べるというような応用も効きます。是非やってみてください。