Qiitaで過去の良記事を探す

Qiitaではトレンドとして週間や月間のLGTM数順に記事を閲覧することができます。しかし、過去の特定の月のトレンドは見ることができません。私はたまに過去の記事を見たいと思うことが多々ありました。そこで、以下の記事を発見。こちらで作成されているQiitaの殿堂はまさに私が求めていたものであり、何度も使用させていただいておりました。

【無料】Qiitaの殿堂を作った物語【簡単】

そんな中時々アクセスができないときがありまして、見たいときに見れるようにするには自分で作るしかないと思い立ち、今回Qiita APIを使用して似たようなものを作成することにしました。

構築手順

使用したものは以下になります。

・Python 3.7.1
・Flask 1.0.2

やったこととしては、PythonスクリプトでQiita APIにアクセスして条件に合致した記事をindex.htmlに渡し、layout.htmlに埋め込んでいます。埋め込みなどはflaskがよしなにやってくれます。コードは以下になります。

from flask import Flask, render_template
import requests
import json
import calendar

access_token = '{access_token}'
headers = {'Authorization': 'Bearer '+access_token}

selected_articles = []

target_year = '2019'

for month in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']:

    _, lastday = calendar.monthrange(int(target_year), int(month))
    for page in range(1, 2):
        url = 'https://qiita.com/api/v2/items?page='+str(page)+'&per_page=100&query=created%3A%3E'+target_year+'-'+month.zfill(2)+'-01+created%3A%3C'+target_year+'-' + \
            month.zfill(2)+'-'+str(lastday)+'+stocks%3A%3E500'
        response = requests.get(url, headers=headers)
        selected_articles.append(json.loads(response.text))

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html', title='qiita legend', selected_articles=selected_articles)


if __name__ == "__main__":
    app.run(debug=True, port=8888, threaded=True)
{% extends "layout.html" %} {% block content %}
<h3>Qiitaの過去記事</h3>
{% for articles in selected_articles %} {% for article in articles %}
<li>
  {{ loop.index }} : {{ article.likes_count }}:
  <a href="{{ article.url }}">{{ article.title }}</a>
</li>
{% endfor %} {% endfor %} {% endblock %}
<!DOCTYPE html>
<html>
  <head>
    <title>{{ title }}</title>
  </head>
  <body>
    {% block content %}
    <!-- ここに個別のhtmlが入る -->
    {% endblock %}
  </body>
</html>

通常のPythonスクリプトのように実行してlocalhost:8888にアクセスすると以下の画面が表示されます。

今回は2019年の各月ごとにストック数が500以上あるものを日付順に表示しています。月ごとの区切りがなくて見づらいかもしれませんが、そこは適宜修正お願いします(笑)。ぼくと同じようにQiitaの過去記事をみたいと思っている人の役に立てばと思います。最後まで読んでくださりありがとうございました。