Qiitaのトレンド記事取得
2019-09-18
azblob://2022/11/11/eyecatch/2019-09-18-acquiring-trendy-qiita-articles-000_0.jpg

はじめまして、現在FIXERのインターンシップに参加している高橋です。 まあ、今日で終わりなんですけどね(笑)。 今回はFIXERインターンシップに参加したということで、そこで少し躓いた「Qiitaのトレンド記事取得方法」について、ブログを書いていこうと思います。(※この記事はFIXERで実施したインターンシップの最終日に書いたものです。)

その前にインターンの概要について説明していこうと思います。今回のインターンシップのテーマとして与えられたのは「cloud.config Tech Blogをより広める方法」です。このテーマについて3チームに分かれてコンテスト形式でアイディア構想から開発までを行いました。私たちのチームは、現在View数の多い記事は他と何が違うんだろうということに着目して議論をした結果、イベント情報最新技術についてのタイムリーな記事のほうがView数が伸びるという結論に至りました。そこで私たちは「キテるワードを使ってブログを書いてもらう」というアプローチの仕方をとることにしました。キテるワードをどうやって取得するか考えた結果、技術系ブログのトレンド記事からキーワードを抽出しようということになりました。そこで挙げられた技術系ブログがまさにQiitaです。

Qiitaからトレンド記事を取り出そうとしたとき、まずはじめに思いついたのがAPIです。QiitaのAPIの一覧を見てくると、トレンド記事を取りだすAPIもなければ、記事のいいね数をとってくるAPIもなくて絶望しました。Qiitaの記事でもトレンドをとってくるAPIがないと嘆いている記事がありました(笑)。

そんな時に思いついたのがRSSです。 インターンシップ2日目に Azure の Logic Appsの使い方をハンズオンで教えたいただいたときに、トリガーとして使ったのがRSSでした。 私自身インターンシップに参加するまでRSSというものが何かわかっていませんでした。調べてみるとRSSは「サイトの概要を配信する」ものらしいです。Logic AppsのRSSトリガーでトレンド記事を取得できないかと、調べてみると、なんとこちらにありました。さっそくためしてみると...

{
  ""id"": ""tag:qiita.com,2005:PublicArticle/1006556"",
  ""title"": ""【PHP】interfaceを利用してテストコードを書く"",
  ""primaryLink"": ""https://qiita.com/tkek321/items/5803e7affc256de7a735?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items"",
  ""links"": [
    ""https://qiita.com/tkek321/items/5803e7affc256de7a735?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items""
  ],
  ""updatedOn"": ""2019-08-28 05:05:23Z"",
  ""publishDate"": ""2019-08-27 13:48:08Z"",
  ""summary"": ""<a href=\"/suin\" class=\"user-mention js-hovercard\" title=\"suin\" data-hovercard-target-type=\"user\" data-hovercard-target-name=\"suin\">@suin</a> さんにコメントを頂いています。\n大変参考になりますので是非コメントも合わせて読んでください。\n<a href=\"https://qiita.com/tkek321/items/5803e7affc256de7a735#comments\" class=\"autolink\" rel=\"nofollow noopener\" target=\"_blank\">https://qiita.com/tkek321/items/5803e7affc256d…</a>"",
  ""copyright"": """",
  ""categories"": []
}

このように出力されました!!!

でも、まだ記事本文が取れていません。記事本文をとりだすのに使うのがこちらのQiita APIです。さきほどの出力の“primaryLink”から記事IDを取り出して、さきほどのQiita APIにGETリクエストするとできました。

こちらがGETした際のURLです。

私はRSSのことにたどりつくまでに相当な時間を費やしました。みなさんにはこの記事をみて、悩まずパッと終わらせてもらいたいですね。