#はじめに
Qiita初投稿になります!
役に立つ記事も書きたいなと思いつつも皆さんに面白いなと思ってもらえるような記事が書けたらと思いますので暖かい目で見守って下さい!
#背景
QiitaAPIを使って何か面白い分析ができないかと思い表題をやってみよう!となりました。
なぜMCUを絡めての分析かというと半分は純粋に大好きだからです!(フェーズ4も始まったし)
もう半分はMCUには様々な架空のテクノロジーが出てきます。
そこで技術情報共有サービスであるQiitaは、MCUの映画が公開されるたびにMCU関連の記事が読まれるのではないかと思い分析してみました!
#方法
1.「ジャービス」と検索して出てくる記事のLGTM(Qiitaのいいね!みたいな機能)された日時を
QiitaAPIで取得します。
※MCUに出てくる代表的かつ実現味がありそうなテクノロジーといえば「ジャービス」!!
2.取得したデータの期間に公開された映画をピックアップ。
3.取得結果と映画公開日をグラフで一覧化し分析します!
#ソースコード
今回使用したQiitaAPIは以下の二つです。
・GET /api/v2/items
・GET /api/v2/items/:item_id/likes
※こちらはQiita Teamでは廃止になっているので注意してください!
一つ目の/api/v2/itemsを使ってジャービスと書かれた記事を抽出していきます。
抽出された結果からitem_idを取得し/api/v2/items/:item_id/likesを使ってLGTMが生成された日時を取得します。
// axiosモジュールを読み込む
const axios = require('axios');
async function main() {
//ジャービスを含む記事を取得
let response = await axios.get("https://qiita.com/api/v2/items?query=" + encodeURIComponent("ジャービス"));
//取得された記事数だけ繰り返し
for(let i = 0; i < response.data.length; i++){
//記事のLGTMの情報を取得
let response2 = await axios.get('https://qiita.com/api/v2/items/' + response.data[i].id +'/likes');
//LGTMがなかった場合はスキップ
if(response2.data != null){
//LGTMの数だけ繰り返し
for(let j = 0; j < response2.data.length; j++){
//LGTMの生成日時だけをログに出力
console.log(response2.data[j].created_at);
}
}
}
}
// 上で定義した関数をここで実行します。
main();
コメントでは書いていない部分を解説します。
・対象の文字列が含まれている記事の検索
items?query=”検索文字列”を使うことで対象の文字列が含まれている文字列を検索することができます。
そこで注意したいのがURLエンコードに対象文字列を変換しないといけないというところ。
encodeURIComponent()関数で「ジャービス」をURLエンコード変換してます。
URLエンコードとは何ぞや?と思われた方は以下を参照してみてください.
URLエンコードについて調べてみた
let response = await axios.get("https://qiita.com/api/v2/items?query=" + encodeURIComponent("ジャービス"));
#結果と考察
抽出した結果と映画公開日を1つのグラフにまとめました。
一見、関係が少しありそうな感じがしますが記事が投稿された日時と比較・・・
うーん、なんとも言えない!!!
記事が関係してそうなところも映画が関係してそうなところもあるのでもう少しフォーカスしてみる。
2018年6月に投稿された記事がここのLGTM数に関係してそうなのでここは映画公開日に挟まれてはいるが関係はなさそう。
もう一つの2019年5月のLGTM数が直近に記事の投稿があったわけではなく増えており丁度映画公開日に挟まれている!!
掘り下げてどの映画が公開されていたかを含めて考察。
この時期にやっていた映画は以下の二作品
・アベンジャーズ/エンドゲーム
・スパイダーマン:ファー・フロム・ホーム
お、エンドゲームがある!!
エンドゲームにはAIジャービスのモデルになった秘書の人間ジャービスが出てきてかなり興奮した思い出あり!!
これはエンドゲームを見た後にジャービスを作りたいと思った人がいると言っていいのではないか!(かなりこじつけ)
#結論
MCUの映画公開はQiitaユーザーの動向に少し影響を与える!!
#感想
QiitaAPIを使うことが目的だったのですが考察のほうが盛り上がってしまいました笑
ただ趣味からプログラム書く人が何人かいるのではないでしょうか?
今回は簡単なプログラムしか書きませんでしたが目的遂行のために費やした時間はいつものようなお勉強ベースのプログラミングより楽しかったです。
今後、SF映画に出てくるようなものを実装していきたいと思っているのでプログラム自体が複雑になっていきそうですが楽しく学んで実装できそうです!
#参考にした記事