クリプト

【Python】ALISの記事を「1000件」読み込めるプログラムの説明

ゆうき's icon'
  • ゆうき
  • 2018/09/10 13:27
Content image


リンク:

アリスブログ「ALISのAPI」を使用する方法まとめ > 当記事


◆ 【Python】ALISの記事を「1000件」読み込めるプログラムの説明

ALISの記事を『3回連続で』読み込む方法」の続き。

ここでは、「ALISの記事を大量に読み込めるプログラム」の説明を行っていきます。


○ 関連記事



◆ 記事を「limit1 × loop_num」個、ロードするプログラム

import urllib.request
import json
import pprint
import time


#任意の値
limit1 = 5
loop_num = 3

#固定の値
page1 = 1
article_box2 = []


for count1 in range(loop_num):
    try:
        url_name1 = 'https://alis.to/api/articles/recent?limit=' + str(limit1) + '&page=' + str(page1)

        cm_data1 = urllib.request.urlopen(url_name1)

        article_box1 = json.loads(cm_data1.read().decode("utf-8"))

        article_box2.extend(article_box1["Items"])


        page1 += 1
        print("Load : " + str(count1))

        #time.sleep(1)

    except:
        print("Error!")
        break


print("要素数 : " + str(len(article_box2)))

print("")

for article3 in article_box2:
    print("article_id : " + article3['article_id'])



input('Enterキーで終了')

※1 追加(修正)した部分は、太字にしています

※2 このプログラムは、「記事を15個(5 × 3 個)」読み込みます


○ 注意事項

上記のプログラムの「#任意の値」に書かれている変数を、以下の値に変更すると、1000記事分(100 × 10)をロードすることができます

#任意の値
limit1 = 100 #最大値
loop_num = 10

ですが、この行為はALISのサーバーに結構な負荷がかかるので

100記事以上読み込む際は、サーバーの負荷に気をつけておいて下さい。


○ 補足:なぜ、大量の記事を読み込む際に、何度もロードを行うのかについて

(現時点での)「limitの最大値が『100』だから」です。

「limit=101」以上にすると、エラーが発生します


このことから、記事を101個以上読み込みたい場合は、複数回に分けてロードを行う必要があります


○ 追加した部分の説明

loop_num = 3

今回は、for文のループ回数を変数に保存しています。


article_box2 = []

リスト型の宣言。

後ほど、「article_box2」にロードした辞書型のデータを詰め込んでいきます


for count1 in range(loop_num):

前回は、「for count1 in range(3):」でしたが、今回は後ろの部分を変数にしました。

「loop_num」に「任意の値」を入れることで、「その値分だけ」内部をループさせます。


article_box2.extend(article_box1["Items"])

辞書型の「article_box1["Items"]」の中身を、リスト型の「article_box2」の内部に入れていくプログラムです。

(※1 ループと組み合わせることで、サーバーからダウンロードした全てのデータを、「article_box2」の中に追加することが可能です)

(※2 リスト型の変数には、辞書型のデータを入れることもできます


・注意事項:リスト型の変数に、辞書型のデータを入れた場合

list1 = []
list2 = []

dict1 = {'Items':[{'ocrybit':1, 'fukurou':2, 'yuuki':3}]}

list1.extend(dict1['Items'])
list2.extend(dict1)

こちらの「サンプルプログラム」を実行した場合、「list1」と「list2」に追加されるものは別物になります。



「list1」には、「[{'ocrybit':1, 'fukurou':2, 'yuuki':3}]」([]のdict型)

「list2」には、「'Items'」(str型)


が追加されます。


list型には、「[]の外にも要素を持った複雑な辞書型」を入れることはできません。

強引に入れると、「str型」に劣化して、内部の情報がなくなります



print("要素数 : " + str(len(article_box2)))

「len()」は、リスト型の要素数を調べるプログラムです。

これを使うことで、「article_box2」に何記事分のデータが入っているのかを見ることができます。


for article3 in article_box2:

リスト型の「article_box2」の中に存在している「辞書型のデータ」を1つずつ、辞書型になった「article3」に代入するループ文です。

「article_box2」の要素数分だけループを行います

(「c#」でいうところの「foreach」でしょうか)


print("article_id : " + article3['article_id'])

「article3」に代入された辞書型のデータの中の「'article_id'」(記事番号)の項のみを表示します。


前と同じように、記事の情報の全てを表示することもできますが、上記のプログラムのロード数を1000件にしてから全ての表示を行うと大変なことになるので(凄く時間がかかるので)、今回は、記事番号しか閲覧しないことにしています。


○ 実行結果

Content image

新着記事から「15件」分の「記事の番号」が表示されました。



「『ALISのAPI』を使用する方法まとめ」に戻る




◆ 「ゆうき」のツイッター


公開日:2018/09/10
獲得ALIS:33.32
ゆうき's icon'
  • ゆうき
  • @yuuki

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

【DeFi】複利でトークンを運用してくれるサイト

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

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

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

Uniswap v3を完全に理解した

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

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

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

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 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
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

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

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

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

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

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

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

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

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS