はじめに
この記事は、5日前にプログラミングの勉強を始めたばかりの初心者による、初めてのQiita投稿です。
まだまだ未熟者ではありますが、完璧を求めてアウトプットしないのは悪だ!
ということで、定期的にアウトプットしていければと思っております。
ご指摘、アドバイスなど随時いただけると嬉しいです!
目的
「Qiita上で"テレワーク"というワードが含まれる記事の数を日別に抽出し、新型コロナの感染者数との相関性を見る」
つい昨年までは、"テレワーク"という言葉はIT業界やベンチャー界隈では当たり前に聞くものの、世間一般ではまだマイノリティな働き方だったように思われます。それが、コロナの感染拡大により一気に広まり、今ではどの業界でも積極的にテレワークを取り入れるようになりました。
本記事では、Qiita上での"テレワーク"と"新型コロナ"の相関性を可視化し、分析していきます。
環境
Visual Studio Code v1.47.0
node v14.5.0
axios 0.19.2
サンプルコード
まず、下記コードで"テレワーク"というワードが含まれる記事の数(日別)を抽出しようと試みました。
コロナとの関連性が見たいので、2020年以降のものに絞ります。
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++) {
console.log(response.data[i].created_at);
}
}
main();
ところがどっこい、QiitaAPIのデフォルトでは取得件数が20になってました><
(参照:https://qiita.com/api/v2/docs#%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%8D%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)
そこで、per_pageの最大値を100に設定し、2回繰り返すと欲しいデータがすべて取得できました!
const axios = require("axios");
async function main() {
let response = await axios.get(
"https://qiita.com/api/v2/items?per_page=100&query="+encodeURIComponent("テレワーク")
);
for (let i = 0; i < response.data.length; i++) {
console.log(response.data[i].created_at);
}
}
main();
const axios = require("axios");
async function main() {
let response = await axios.get(
"https://qiita.com/api/v2/items?per_page=100&page=2&query="+encodeURIComponent("テレワーク")
);
for (let i = 0; i < response.data.length; i++) {
console.log(response.data[i].created_at);
}
}
main();
抽出結果と考察
Qiitaの記事数がわかったので、全国のコロナ陽性者数データと並べてグラフにしてみました。
(参照:「厚生労働省」https://www.mhlw.go.jp/stf/covid-19/open-data.html)
▲日別にしたら、見づらい・・・
▲半月ごとにしてみた。こっちの方が分かりやすいですね。
コロナの感染拡大が広がるにつれて、"テレワーク"を含む記事数も増加しているのがハッキリと見てとれます。
ただ今後の展開としては、増減は比例しないのではないかと思います。
というのも、7月に入って全国的にも第2波が押し寄せていて、グラフ上でも陽性者数は急増していますが、記事数は微増に止まっています。
これは、"テレワーク"が世間的にも当たり前になってきているからではないかと推測します。
半年前に比べれば、平均の数はもちろん増えるとは思いますが、今後は安定的なグラフを描いていくのではないでしょうか。
おわりに
今月から通っているスクール(プロトアウトスタジオ:https://protoout.studio/ )で課された宿題が「Visual Studio Codeを利用し、Node.jsのaxiosライブラリを使ってQiita APIのタグ情報にアクセスして自分なりにデータを考察し発表する」という内容で、今回上記テーマに取り組みました。
まず宿題内容を知ったときに、Qiitaをざっと見てみるも、ど素人でプログラミング用語の理解が乏しく、何をテーマにすればいいか正直焦りました・・・。でも少なからず自分らしいことをしたいなと考えた時に、私がHRベンチャーに勤めているので、HR周り→働き方→テレワークというテーマを設定しました!
ただシンプルにデータ取得しただけですが、「csvで出力したい」「日付フォーマットを変えたい」など、改善点もたくさん見えたので、楽しかったです。もっと色々知りたいな!