done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。すべての記載は他に定める場合を除き個人的なものです。

Stack OverflowのAPIをPythonから使う

自分用メモ。Pythonは3.5で、Anacondaでインストールしたもの。

最初は標準ライブラリのurllibだけでなんとかしようと思ったんですが、オフィシャル読みに行ったらいきなりrequests使えって書いてあったし、anacondaには標準でrequests入ってる?みたいなので、素直にそうしました。(ただ、無意識に自分でpipなり使ってインストールしていたのかも知れません。)

requestsはHTTPプロトコル扱うのにとても便利なライブラリらしいです。確かにサンプル触った感じとても良さそう。

Stack Overflowについてはもはや説明不要ですね。Stack Exchangeという会社が運営しているそうですが、よくわからん。

APIのドキュメントはここ読めば良い感じ。

今回は取り敢えず、Apache Hadoopにタグ付けされている質問をAPIで取ってきます。

In [1]: import requests

In [2]: url = "https://api.stackexchange.com/2.2/"

In [3]: r = requests.get(url + "questions?tagged=hadoop&site=stackoverflow")

In [4]: r.status_code
Out[4]: 200

In [5]: j = r.json()

In [6]: for k in j:
   ...:     print(k)
   ...:
has_more
items
quota_max
quota_remaining

取れてますね。これだけできれば後はなんとでもなりそう。便利