目的
どのタグ(ほぼ言語)が最初にフォローされやすいのかを確認する。
先に登録するものが、Qiitaを使いたいというきっかけになるものなので、
本当に興味があることではないかという推測に基づく。
方法
あるグループのユーザリストを取得(プログラム外)し、
APIを使って新しい順にユーザ別にタグを取得。
認証情報がないとAPIをたたける数が少ない。
新しいものの番号を古い順に変換し、登録5つ目までのタグをランキング化(プログラム外)
コード
get_qiita_data_tags.js
//package requireconstaxios=require("axios");constfs=require("fs");constcsvStr=require("csv-stringify/lib/sync");constcsvParse=require('csv-parse/lib/sync');//認証情報の取得 外から渡してるconsttoken=process.argv[2];//QiitaAPIでデータ取得・csvに出力asyncfunctiongetArticle(query){//ユーザリストを取得constfile='./data/input_user_list.csv';letinputData=fs.readFileSync(file);letuser_list=csvParse(inputData);console.log(user_list);//csvに変換する用listletoutcsv=[];//csvのヘッダー設定letcolumns=["ユーザ番号","ユーザID","タグ登録順","タグ"];outcsv.push(columns);//あるリストに存在するユーザ数varuser_num=user_list.length;//検索用パラメータvarPAGE_MAX=4;varPER_PAGE=100;for(i=0;i<user_num;i++){//あるユーザがフォローをしているタグを取得varuser_id=user_list[i][0];console.log(user_id);for(page=1;page<=PAGE_MAX;page++){//URLを作っておくvarurl="https://qiita.com/api/v2/users/"+user_id+"/following_tags?page="+page+"&per_page="+PER_PAGE;letresponse//リクエストが失敗した時の処理response=awaitaxios.get(url,{headers:{Authorization:`Bearer ${token}`,}}).catch(err=>{returnerr.response});if(response.status!=200){console.log("たぶんAPIエラー")}vartags_num=response.data.length;varsort_num_desc;console.log(tags_num);for(j=0;j<tags_num;j++){//一レコードの情報格納listletrecord=[];//欲しい要素vartag_id=response.data[j].id;sort_num_desc=(page-1)*PER_PAGE+(j+1);console.log("row: "+sort_num_desc+",user_n: "+i+",user_id: "+user_id+",tag_id: "+tag_id);//listに格納record.push(i,user_id,sort_num_desc,tag_id);outcsv.push(record);}}}// csvとして出力fs.writeFileSync("./data/following_tag_list.csv",csvStr(outcsv));}//情報の取得varquery="node.js";getArticle(query);
結果
そもそもあるグループの前提になっている授業に含まれている言語が多い。
フロント側の技術や、必須になるソースの管理に関しても見る人が多い。
あんまりユーザ数が約40人のグループにしては必須の技術のタグ付け数が少ない。
タグ付けしないのだろうか。
順位 | タグ | ユーザ数 |
---|---|---|
1 | JavaScript | 16 |
2 | Node.js | 12 |
3 | Python | 8 |
4 | GitHub | 6 |
5 | Android | 5 |
6 | Chrome | 4 |
7 | CSS | 4 |
8 | HTML | 4 |
9 | HTML5 | 4 |
10 | Git | 3 |