2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Qiita初心者がまずタグ付けしたらよい言葉とは?

Posted at

#目的
 どのタグ(ほぼ言語)が最初にフォローされやすいのかを確認する。
 先に登録するものが、Qiitaを使いたいというきっかけになるものなので、
 本当に興味があることではないかという推測に基づく。

#方法
 あるグループのユーザリストを取得(プログラム外)し、
 APIを使って新しい順にユーザ別にタグを取得。
 認証情報がないとAPIをたたける数が少ない。
 新しいものの番号を古い順に変換し、登録5つ目までのタグをランキング化(プログラム外)

#コード

get_qiita_data_tags.js
//package require
const axios = require("axios");
const fs = require("fs");
const csvStr = require("csv-stringify/lib/sync");
const csvParse = require('csv-parse/lib/sync');

//認証情報の取得 外から渡してる
const token = process.argv[2];

//QiitaAPIでデータ取得・csvに出力
async function getArticle(query) {
  //ユーザリストを取得
  const file = './data/input_user_list.csv';
  let inputData = fs.readFileSync(file);
  let user_list = csvParse(inputData);
  console.log(user_list);

  //csvに変換する用list
  let outcsv = [];

  //csvのヘッダー設定
  let columns = ["ユーザ番号","ユーザID","タグ登録順","タグ"];
  outcsv.push(columns);

  //あるリストに存在するユーザ数
  var user_num = user_list.length;
  
  //検索用パラメータ
  var PAGE_MAX = 4;
  var PER_PAGE = 100;   
      
  for (i = 0;i<user_num;i++){
    //あるユーザがフォローをしているタグを取得
    var user_id = user_list[i][0];
    console.log(user_id);

    for (page = 1;page<=PAGE_MAX;page++){
        //URLを作っておく
        var url = "https://qiita.com/api/v2/users/"+user_id+"/following_tags?page=" + page + "&per_page=" + PER_PAGE;
        let response
        //リクエストが失敗した時の処理
        response = await axios.get(url
          , {
            headers: {
              Authorization: `Bearer ${token}`,
            }
          }
          
          ).catch(err => {
            return err.response
        });
        if (response.status != 200) {
          console.log("たぶんAPIエラー")
        }

        var tags_num = response.data.length;
        var sort_num_desc;
        console.log(tags_num);
        for (j =0 ; j<tags_num ; j++) {
          //一レコードの情報格納list
          let record = [];
          //欲しい要素
          var tag_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));
}

//情報の取得
var query = "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
2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?