LoginSignup
38
14

More than 1 year has passed since last update.

初めてQiita APIでデータ取得したら、下衆な探偵になっていた

Posted at

背景

取得データの読み方もそれをどう活用するのかもわからない。そんな私がまずはやってみようという試み。自分の興味に従い、楽しく体感&理解!

真面目に調べるつもりが、野次馬根性にあっさり負ける

私が今「ハーフミラー」を使ったメディアアート作品を作っているので、「ハーフミラー」というワードを使った記事を書いている人がどれだけいるのかな?と、まずは検索。
すると、記事を書いた人のLocation=場所がわかることが判明。私と同じ対象、しかも多分Qiita内ではニッチであろうハーフミラーに興味を持ち記事にまでする人がどのエリアに出没しているのかが図らずもわかってしまい、俄然野次馬根性が湧く。
ここで興味の対象が、「ハーフミラー」から一転、「記事を書いた人がいるらしい場所」調べに。

初手は真面目に「ハーフミラー」の記事検索/その方法

1.「ハーフミラー」と検索して出てくる記事の日付および件数をQiitaAPIで取得。思いのほか多かった。
2.さらに、記事を書いている人たちがどのエリアに生息しているのか覗き見ちゃう。どれどれ、みんなどこにいるんだ。

コード

まずはconsole.log(response.data[i].created_at);で、「ハーフミラー」について記事が書かれた日付を調べる。

// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「ハーフミラー」という単語で記事を検索する
    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();

その結果、

2020-11-28T15:24:17+09:00
2020-10-03T21:44:46+09:00
2020-08-12T17:43:39+09:00
2020-06-15T23:58:57+09:00
2020-06-05T00:30:31+09:00
2020-05-01T12:24:49+09:00
2020-02-23T18:04:01+09:00
2019-12-02T17:25:56+09:00
2019-12-02T17:21:41+09:00
2019-12-01T14:45:10+09:00
2019-10-22T14:45:43+09:00
2019-10-04T20:50:19+09:00
2019-07-06T14:53:42+09:00
2019-06-18T13:59:18+09:00
2018-12-24T14:11:29+09:00
2018-12-24T01:47:04+09:00
2018-12-11T03:21:38+09:00
2017-10-14T17:06:44+09:00
2017-04-04T09:17:09+09:00
2016-12-31T15:10:58+09:00
2016-12-14T13:36:12+09:00
2016-07-01T16:58:50+09:00
2016-01-28T15:14:40+09:00
2015-11-23T09:21:35+09:00

ほー、2015年からコンスタントに書かれているじゃないの。
でも2019と2020年の記事が多い。近い日付で連続アップされてるから、多分これ同じ人が書いた記事だな。
この人の記事は後でじっくりチェックするとして、次いってみよー。

私と同じ興味の対象を持つみんなー!一体何書いてんの?

ここで記事情報と記事を書いた人たちのさらなる情報を入手。総件数が少ないから、最後を
console.log(response.data[i]);
に変えただけ。

// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「ハーフミラー」という単語で記事を検索する
    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]);
    }
}

main();

ここから徐々に探偵化が始まる

ここで私は見つけた。locationという項目を。
なんですって・・・!こんなことまでわかるの?
API・・・恐ろしい子・・・!

 user: {
    description: '',
    facebook_id: '',
    followees_count: 13,
    followers_count: 65,
    github_login_name: null,
    id: 'Somelu01',
    items_count: 8,
    linkedin_id: '',
    location: '',
    name: '',
    organization: '',

そして場所を特定する野次馬となる

locationだけを抜き出したい。
もうハーフミラーなんてどうでもいい(よくはない)。
最後を
console.log(response.data[i].user.location);
に変えて、粛々とnodeをエンター。

// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「ハーフミラー」という単語で記事を検索する
    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].user.location);
    }
}

main();

同士たちが住む街判明

出た、出たよ。

YRP野比

Tokyo


東京 新宿区
Tokyo
Tokyo
福岡


null
Tokyo, Japan

待って。
「TRP野比」だけピンポイントすぎない?
駅名ってどゆこと?
調べといてなんだけど、だ、大丈夫?TRP野比さん。なんかこう、隠すとかした方がよくない?

そして福岡の人が一人だけいる。
がんばれ!!西日本のハーフミラーの行く末はあなたにかかってるっ!任せたわ!

大学院の先生を調べる

ごめんね、先生:hatched_chick:(かわいいひよこの絵文字つけたからきっと許してくれる)
えっと、ワードを「の●●●」、に変えて、と。
(実際はフルで名前入れてコード書いてます)

// axiosモジュールを読み込む
const axios = require('axios');

// main()関数を定義する
async function main() {
    // QiitaAPIで「の●●●」という単語で記事を検索する
    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].user.location);
    }
}

main();

でーたー!!!

null

Okinawa, Japan
Tokyo, Japan

null
null

Akihabara
Akihabara
Akihabara
Akihabara
Akihabara
Akihabara
Akihabara

先生・・・・沖縄行ったんですね・・・はいさい・・・

感想

ハーフミラーについて真面目に調べようとしてたのに、こんなことになるとは。
でも・・・面白かったぁ:relaxed:!!

と同時に、こういうことができてしまうとなると、やはりある程度のリテラシーを自身で上げる必要を感じた。
もちろん制限あるから調べるにしても限界はあるだろうけど。
子供たちにはぜひ知ってほしいなぁ~

以上、APIやったら探偵になったお話でした。

おわり!

38
14
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
38
14