クリプト

API取り扱いの簡単な解説(Python)

ホーさん's icon'
  • ホーさん
  • 2018/06/26 14:56
Content image

なんとなんと、ALISのAPIが公開されましたね!ALIS SEARCHも公式に認めてもらえまして、とっても嬉しいです。石井CTOの記事にご紹介いただきまして、ありがとうございました。

 APIってなに?という記事はすでにいくつか挙がっているようなので、本記事では具体的な使い方を解説したいと思います。

使用言語はPythonです。Jupyter notebookという、ブラウザ上でPythonを実行できるソフトを使って解説します。


PythonによるAPIへのアクセス

Content image

まず、APIのダウンロードとデータの取り扱いに必要なライブラリをインポートします。

Content image

次に、新着記事のデータを取得するAPIを呼び出してみましょう。

Content image

[2]では、APIを呼び出すURLをapiという名前の変数に与えています。なお、[2]は、上の画像の左端にIn[2]とあるのを指しています。

[3]では、APIをWEB上から取得(リクエスト)し、urlという名前の変数に与えています。

[4]では、url変数から、JSONというデータの形式でAPIからデータを読み、articlesという名前の変数に与えています。

[5]では、articlesを画面上に出力します。

こんな感じです。

新着記事の情報が並びます。よく見ると、下のような構文になっています。(ALISのAPI情報から抜粋)

Content image

"article_id"は、記事のIDです。記事のURLをよく見ると、最後に「3bNEde67zWzO」のような英数字がついていますよね。それです。

"user_id"はユーザーIDです。私だと「fukurou」ですね。ペンギンですが。

"title"は記事のタイトルです。

"overview"は記事の概要です。アイキャッチの下に書かれている文字ですね。

"eye_catch_url"はアイキャッチ画像のURLです。

"created_at"は記事が作成された時刻、だと思います。

そのほかにも、"published_at"は記事が投稿された時刻、"sort_key"は記事が作成された時刻をより精度高く表示、"status"は記事が公開状態かどうかを表しています。

先ほどの[5]でのコマンドでは、新着記事が全て出力されてしまうので、スクロールが大変です。一つだけ取り出してみてみましょう。

Content image

articles['Items'][0]とすると、新着記事の1番目の情報のみを表示することができます。みやすくなりましたね!(Pythonでは0が1番目を表します。ややこしいですが。)

なお、今回のAPIで取得した記事の総数は以下のように出力できます。

Content image

20記事取れましたね。なお、ALISのAPI情報を見ると、それ以上の記事を取得する方法も載っています。

また、[6]で出力したデータから"published_at"の情報を取得するにはこうします。

Content image

1530019758ってなに?となりますね。これはUNIX時間といって、1970年1月1日午前0時0分0秒からの経過秒数を表しています。[9]はそれを西暦に直すコマンドです。これで、記事が投稿された時刻が分かりましたね!


応用編:10時に投稿された新規記事のいいね数

Content image

次に、ちょっと応用編です。

[4]で取得したリスト(articles)から、”10時台に投稿された”記事のみをフィルタリングしましょう。

Content image

[10]では、[9]と同様に、投稿時刻を取得しています。記事を書いていて気づきましたが、この値は使いません。

[11]では、10時に投稿された記事のIDと、その記事の執筆者のIDを同時に取得し、articles_10pm変数に与えています。Pythonではバックスラッシュ"\"は1行のコードを改行して記述するときに使いますので、[11]の2行目から下は実際には1行です。if ... hour == 22とあるので、なんとなく、22時に一致する記事を抜き出しているんだなとお分かりいただけると思います。

[12]では、それを表示しています。

10時に投稿された記事の、現時点での「いいね」の数を取得してみましょう。

Content image

api変数に、「いいね」を取得するURLを与え、

url変数にapiのURLにリクエストした結果を与え、

likes変数に「いいね」の値を与えます。

time.sleep(1)というのは、apiの取得に1秒間休止時間を設けるという意味です。ノータイムでAPIにアクセスしてしまうと、ALISのサーバーに負荷を与えてしまいますので注意が必要です。


おわりに

Content image

APIの公開と、公式から「自由に使っていいよ」という言葉があったことは、これまで勝手に外部開発していた身からすると、すごく嬉しい出来事でした。

これは解説記事を書かねば!と、半ば使命感にかられ、早速記事を書かせていただきました。

本記事をみて、APIを使うとは具体的にどういうことなのかご理解いただけましたら幸いです。Python使ってみよーかなと思っていただけると、さらに嬉しいです。

腕に覚えのある方は、是非ハッカー部へ!

お待ちしております。

Content image


ホーさん

Twitter



公開日:2018/06/26
獲得ALIS:96.22
ホーさん's icon'
  • ホーさん
  • @fukurou
Python/JavaScript

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
120.79 ALIS
Eye catch
クリプト

クリプトスペルズで入手したMCHCを引き出す方法

Like token Tip token
196.20 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

Like token Tip token
31.32 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
43.10 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Like token Tip token
69.90 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS