LoginSignup
27
41

PythonでQiita APIを叩いて初心者向け記事を一覧取得したあと、神記事たちを参拝していく

Last updated at Posted at 2019-12-14

はじめに

Qiitaの「初心者」タグや「新人プログラマ応援」タグの初心者向け記事は新人QAエンジニアの私にはとても参考になるものばかり。
ただ残念なことに、個別タグページにはトレンドと新着記事しか載っておらず、過去の良記事を探しにくい仕様になっています。

本記事では、まずQiita APIを使って初心者向け記事(:=「初心者」OR「新人プログラマ応援」タグのついた記事)を全て出力するプログラムを作成したのち、次に出力リストの各記事をいいねの多い順に読んでいった結果「これはとんでもなく参考になる!」と感じた神記事たちを紹介していきます。

※注:今回はいいね数でフィルタしてますが、あなたの為になった記事はいいね数にかかわらず神記事ですよ!!

やりたいこと

  1. 初心者向け記事を全部取ってきてCSVに出力する
  2. 表計算ソフトでCSVを読み込み、リストを「いいね回数が多い順」に降順ソートする
  3. 上から順に参拝する

プログラムを作る

どうすれば「初心者向け記事を全部取ってきてCSVに出力」できそうか検討する

シンプルにこんな感じで考えてみました。

  1. 「初心者」タグOR「新人プログラマ応援」タグがついた記事をAPIで全部取得する
  2. 必要なデータだけを抽出する
  3. データをCSVに書き出す

APIの仕様を読んで、データの取得方法と必要なデータを検討する

Qiita APIの公式ドキュメントを読むと以下が分かります。

  • "GET /api/v2/items"に、ページ数とタグを入れた検索クエリを投げれば記事が取得できる
  • 要素数(記事数)の合計は Total-Count レスポンスヘッダに含まれる
    • 最初に検索クエリを投げて記事数を取得して、それをページ数に変換すれば全記事を取得できる
  • 今回の目的には取得した各記事の以下のデータがあれば十分
    • title
    • url
    • tags
      • titleだけだと内容がぱっと見で分からないケースがあるため、補足情報として
    • updated_at
      • 技術情報で古すぎる内容は仕様が変更になっていないか確認が必要なため
    • likes_count
      • 記事数が膨大なため、スクリーニングに

ちょちょいと実装する

上記検討をもとに実装したコードとその解説、サンプル出力ファイルをGitHubにおきました。

実装にあたっては下記の記事を参考にさせていただきました。ありがとうございます!
Qiitaで自分が投稿した記事の一覧を得る

参拝する

Pythonでリストを操作してもいいのですが、面倒なので今回は表計算ソフトでCSVを読み込んで編集していきます。
適当にヘッダ列をつけて、いいね順で降順ソートしたら終わりです。あとは上からURLを巡っていきます。
自分の場合、読んで気に入った記事は"いいね"+テーブル上で色付けしてました。

2019年11月20日時点で取得できた記事総数は8642件!
全部を読むのは到底無理だったので、
今回は2019年11月20日時点で1000いいね以上を獲得していた75記事を読んでいきました。

厳選!!スーパー神記事リスト

以下のリストが75件の神記事を読み込んで、私が特に感銘を受けた22件の超・神記事たちです!
(ちょっと多いですがこれでも重複内容を削る等かなり厳選しました)
ざっくりと内容でカテゴリ分けしています。

仕事のすすめかた

ドキュメントの書き方

プログラミング

コンピュータサイエンス 〜結局ここに至る〜

書籍/記事まとめ

情報収集/発信

読んでみての感想

いわゆる「バズった」記事を上から順に読んでみたのですが、
「いっしょに働く相手をちゃんとリスペクトしましょう」**「日本語ちゃんと書きましょう」
*「コンピュータサイエンスちゃんと学びましょう」*などなど、実は言ってることはどれも似通っている気がします。
本質は意外とシンプルだったりするよな〜、なんて。

同時に記事を読んだだけで満足するんじゃなくて、実際に行動に移していかんですね。
長い道のりになりそうですが、急いても仕方ないので、地道にやっていこうと思います…!

27
41
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
41