クリプト

【Python】特定の時刻の「ALISの記事」を取得する方法

ゆうき's icon'
  • ゆうき
  • 2018/09/21 00:33
Content image


リンク:

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


◆ 【Python】特定の時刻の「ALISの記事」を取得する方法

ここでは、時刻の操作に関するプログラムを、軽く説明していきます。


○ 留意事項

・「2018/09/21」に作成した記事です

・以下のプログラムは、ALISのユーザー数が大幅に増えると、あまり使えなくなります(「load_num」の値が膨大になるため)


○ 関連記事



◆ 昨日の内の、「20:00 ~ 21:59」に投稿された記事を抽出するプログラム

import urllib.request
import json
import pprint
import time
import datetime


#任意の値
load_num = 300


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


# 呼び出しする数の生成
if load_num < 1 : load_num = 1
limit1 = load_num
loop_num = (int)(1 + (load_num - 1) / 100)
if limit1 > 100 : limit1 = 100


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'])
       
        print('Load : ' + str(count1) + ' (読み込み ' + str(page1 * limit1) + '記事)')
        page1 += 1
       
        #time.sleep(1)
       
    except:
        print("Error!")
        break


print("")

date1 = datetime.datetime.now()

date1 -= datetime.timedelta(days = 1)



for article3 in article_box2:
    published_at1 = 0
   
    if "published_at" in article3.keys():
        published_at1 = article3['published_at']
    else :
        published_at1 = article3['sort_key'] / 1000000

    date2 = datetime.datetime.fromtimestamp(published_at1)


    day1 = int(date1.day)
    day2 = int(date2.day)
    hour2 = int(date2.hour)

    if day1 == day2 and hour2 >= 20 and hour2 <= 21 :
        print(article3['user_id'] + " : " +article3['article_id'])



input('Enterキーを押してね!')

※ 説明したいところは、太字になっています


○ 説明!

import datetime

「datetime」のモジュールを入れて、時刻の操作を行えるようにします。


date1 = datetime.datetime.now()

現在の時刻を、「datetime.datetime型」で取得。

「datetime.datetime型」を用いることで、オブジェクトに様々な時刻の情報を入れておきます。


date1 -= datetime.timedelta(days = 1)

日付の加算や減算を行うプログラムです。

現在の時刻-1日」とすることで、「昨日」の時刻をdate1にメモしておきます


if "published_at" in article3.keys():
    published_at1 = article3['published_at']
else :
    published_at1 = article3['sort_key'] / 100000

取得した記事の(辞書型の)データに、「published_at」(記事の投稿時間)という要素が含まれていたら、それを変数に代入。

もしなかったら、代わりに「sort_key」(記事の作成時間)の情報を代入です。

(「sort_key」の場合は「/ 100000」で秒数以下の情報を切り捨てています)


現時点において、2018年5月1日前のALISの記事には、「published_at」が含まれていないので、バグ対策として、このようにしています。


date2 = datetime.datetime.fromtimestamp(published_at1)

取得した記事の投稿時間(unix時間)を「datetime.datetime型」に変換しました。


day1 = int(date1.day)
day2 = int(date2.day)
hour2 = int(date2.hour)

必要となる値を、「int型」で出力。


if day1 == day2 and hour2 >= 20 and hour2 <= 21 :
    print(article3['user_id'] + " : " +article3['article_id'])

・昨日の日程が、投稿した日程と同じになる

・投稿した時間が、20時~21時の範囲になっている

という条件の記事を、printで表示します。


○ 実行結果

「load_num = 300」でテスト。

Content image

指定の時間(この場合は、「2018-09-20」の「20~21時」)に投稿された記事の「ユーザーID」と「記事番号」を表示してみました。



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




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


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

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

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

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

ブロックチェーンの51%攻撃ってなに

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

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

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

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

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

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

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

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

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

UNISWAPでALISをETHに交換してみた

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

Uniswap v3を完全に理解した

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

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

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

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

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

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

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

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

Like token Tip token
1.06k ALIS