Crawling Data Twitter dengan R

Pada postingan sebelumnya, saya telah sedikit berbagi tentang social media analytics dan sempat menyinggung sumber data yang digunakan dalam social media analytics diantaranya sosial media, news portal, blog dll. Kali ini, saya akan berbagi salah satu tahap awal dalam analytics yakni pengumpulan data (data harvesting).

Sesuai judulnya, postingan ini akan membahas tentang cara mendapatkan data dari Twitter sebagai bahan analisis. Dari sosial media populer seperti facebook dan instagram, twitter ini yang paling baik soal open access data. Twitter memberikan akses kepada khalayak untuk mengkonsumsi data mereka lewat API yang mereka sediakan. thanks Jack Dorsey!. API twitter sendiri terdiri 2 jenis yaitu REST API dan Streaming API. Lebih afdholnya langsung ke TKP aja gan untuk penjelasannya :D. Secara singkat bedanya, kalo REST API kita ngambil data di masa lalu hingga sekarang, kalo streaming API kita ngambil data mulai dari sekarang hingga ke depan tergantung berapa lama kita mau ambil. Nah kali ini kita akan menggali kenangan masa lalu di twitter lewat REST API. uhuk.

Terima kasih kepada sohib kita Jeff (sok kenal) yang sudah membuat package R yang diberi nama twitteR sehingga kita tinggal dengan mudah menggunakannya lewat function-function yang udah doi buat. Oke langsung saja ke tahap-tahapnya.

  1. Generate access token API key dan API secret untuk bisa mengakses twitter API. Cara membuatnya langsung saja ke tulisan ini, inshaa Allah cukup jelas.
  2. install twitteR package
    ada 2 cara untuk install package di R, pertama dengan build in function di R install.package atau melalui github repository menggunakan package devtools

    • install package dari CRAN
      Ini cara paling praktis untuk install package ke R, caranya sangat mudah tinggal tulis fungsi install.package("package_name") package akan otomatis terinstalll beserta dependensinya.
    • install package melalui Github menggunakan devtools
      Terkadang ada package yang belum terdaftar di CRAN sehingga belum bisa kita install menggunakan install.package, tapi kita tetap bisa menginstall package tersebut melalui repository development-nya dengan bantuan package devtools.

      Berikut adalah syntax untuk install  twitteR package dengan dua cara diatas:

      #install twitteR package dari CRAN
      install.package("twitteR")
      
      #install twitteR package dari github repository
      library(devtools)
      install_github("twitteR", username="geoffjentry")
      
  3. Aktifkan package dan twitter authentication
    Setelah twitteR package terinstall, kita tinggal mengaktifkan package dengan function library(twitteR), setelah itu kita perlu mengaktifkan credential yang kita dapat di step 1 untuk setiap kita ingin mengakses API twitter. Di package twitteR sendiri telah ada fungsi untuk menjalankan autentifikasi tanpa perlu menggunakan bantuan package lain seperti httr .

    library(twitteR) #aktifkan package twitteR
    
    api_key = "XXXxxyyYzzz" #change with yours
    api_secret = "Xyy21xyyy65zy7zyzx" #change with yours
    token = "21313yyzxyzxy213xzy" #change with yours
    token_secret = "XXXxxx98188xxx999yy" #change with yours
    setup_twitter_oauth(api_key, api_secret, token, token_secret) #fungsi untuk autentifikasi
    

    Setelah credential telah diaktifkan, sekarang kita sudah bisa mengakses data dari API twitter.

  4. download data dari twitter
    Untuk menggenerate data kita menggunakan fungsi searchTwitter, fungsi ini mempunyai beberapa parameter, yang terpenting adalah keyword yakni keyword apa yang ingin kita download dari twitter. Kita juga bisa menambah parameter n yakni jumlah tweet yang ingin kita ambil serta mengatur waktu dari rentang kapan data yang mau kita ambil (tentunya dari masa lalu hingga sekarang). Berikut contohnya.

    #ambil 100 tweet yang mengandung keyword pialaAFF dari tanggal 18 hingga 20 november
    tweets = searchTwitter("pialaAFF", n = 100, since = "2016-11-18", until = "2016-11-20")
    


    searchTwitter akan mengembalikan data bertipe list, jika ingin melakukan analisis akan lebih mudah jika kita menggunakan data bertipe data frame, untung saja di twitteR telah ada function untuk merubah data bertipe list ke data frame menggunakan fungsi twListToDF.

    #merubah data list ke data frame
    tweets_df = twListToDF(tweets)
    #data telah berbentuk dataframe dan siap dianalisa
    names(tweets_df) #untuk melihat kolom apa saja yang dimiliki oleh data
    

    output : searchTwitter memberikan data dengan 16 kolom sebagai berikut.

    [1] "text"          "favorited"     "favoriteCount" "replyToSN"     "created"      
     [6] "truncated"     "replyToSID"    "id"            "replyToUID"    "statusSource" 
    [11] "screenName"    "retweetCount"  "isRetweet"     "retweeted"     "longitude"    
    [16] "latitude"

    contoh 5 data teratas adalah

    head(tweets_df)
    

    output
    print

    Parameter diatas seperti keyword, n, date range dapat kita ubah sesuai dengan keinginan kita, bisa juga kita menambahkan parameter lainnya sesuai dengan yang ada di dokumentasi twitteR package. Tentu saja, REST API ini punya limit dalam memberikan data kepada client baik rentang waktu yang bisa diakses maupun jumlah tweet yang diberikan, ada baiknya untuk membaca dulu dokumentasi twitter API sebelum mengaksesnya baik melalui R, python atau bahasa lainnya. Sekian, semoga bermanfaat.

Leave a comment