Realtime Twitter Feed in Csv Every Minute
Sekitar empat tahun lalu, saya menulis artikel dengan judul yang hampir sama persis: twitteR: Crawling Data Twitter Menggunakan R. Pada saat itu, cara paling mudah untuk mendapatkan (crawling) data dari Twitter dengan R adalah menggunakan package twitteR. Sayangnya pada pertengahan 2016, Jeff Gentry, sang pengembang, menghentikan pengembangan dan update/maintenance terhadap package tersebut. Meskipun package twitteR masih bisa digunakan (setidaknya sampai saat ini), Mr. Jeff merekomendasikan untuk beralih menggunakan package lain yang tidak kalah kerennya, yaitu rtweet.
rtweet dikembangkan oleh Michael W. Kearney. Versi pertama dirilis pada Agustus 2018, atau hampir bersamaan dengan pengumuman penghentian pengembangan twitteR. Sesuai dengan deskripsinya, rtweet berfungsi untuk mengakses API Twitter melalui R. Jika twitteR hanya mampu digunakan untuk berinteraksi dengan REST API (untuk mencari "data" historis atau yang sudah lampau), rtweet ini bisa juga digunakan untuk mengakses stream API (live/realtime). Pada artikel ini kita bahas untuk REST API dulu ya.
Instalasi
Ada dua cara, yaitu install dari CRAN (untuk versi rilis terkini) dan dari Github (untuk versi development/pengembangan).
Opsi 1: dari CRAN
Opsi 2: dari Github
Note: install dari Github memerlukan package devtools
Setelah terinstal, load package rtweet
Pelajari lebih lengkap tentang instalasi package R melalui artikel Menginstal R Package.
Untuk mengakses API Twitter diperlukan akun Twitter, aplikasi (application) dan token akses (access token). Silakan pelajari langkah-langkah membuat aplikasi dan mendapatkan token akses pada artikel Twitter Authentication dengan R.
Note: Pada Juli 2018, Twitter mengubah kebijakan terkait registrasi aplikasi baru. Kini, untuk membuat aplikasi harus menggunakan developer account. Saat melakukan registrasi, Twitter meminta kita untuk menjelaskan secara lebih detail hal-hal terkait dengan aplikasi. Selanjutnya Twitter akan meninjau, apakah aplikasi disetujui atau tidak. Kabar baiknya, aplikasi-aplikai yang didaftarkan sebelum diterapkannya kebijakan baru ini masih bisa digunakan. Setidaknya sampai hari ini. Info selengkapnya di sini.
Setelah membuat aplikasi, proses selanjutnya adalah otentikasi (authentication) agar R melalui rtweet bisa berinteraksi dengan API Twitter. Proses ini ada dua opsi, yaitu (1) melalui browser dan (2) dengan access token. Keduanya dengan menggunakan fungsi create_token()
. Silakan pilih salah satu.
Opsi 1: Otentikasi melalui browser
Opsi ini membutuhkan:
- Consumer API key
- Consumer API secret key
R otomatis akan membuka browser, meminta login ke Twitter dan menampilkan pesan:
Authentication complete. Please close this page and return to R.
Ini berarti otentikasi berhasil.
Opsi 2: Otentikasi dengan access token/secret
Selain consumer API dan API secret key, opsi ini juga membutuhkan:
- Access token
- Access token secret
Jika tidak muncul error, berarti proses otentikasi sukses.
Note: Consumer API key, consumer API secret key, access token dan access token secret di atas hanya contoh, silakan ganti dengan nilai yang sesuai.
Crawling Data Twitter
Setelah proses otentikasi berhasil, kita siap untuk "menambang" data (crawling) dari Twitter. Untuk kepeluan ini, rtweet mengemas berbagai fungsi yang cukup lengkap, di antaranya:
-
search_tweets()
: mencari tweet dengan kata kunci tertentu -
lookup_users()
: menampilkan data detail dari satu atau lebih user(s) -
get_timelines()
: menampilkan status/tweet yang pernah diposting oleh user tertentu aka timeline -
get_followers()
: menampilkan list followers dari user tertentu -
get_friends()
: menampilkan list fiends/followings atau yang di-follow user tentu - dan masih banyak yang lain seperti untuk menampilkan retweet, siapa yang me-retweet, mendapatkan list favorite, menampilkan trending topics, cleansing tweet, dan juga ekspor data ke file csv.
search_tweets()
Mencari tweet yang memuat kata kunci tertentu. Secara default, dalam sekali dijalankan akan memberikan MAKSIMAL 18.000 tweets, yang merupakan sampel dari historis tujuh hari terakhir. Bagaimana kalau ingin lebih dari 18 ribu atau lebih dari tujuh hari? Salah satu caranya dengan membuat akun premium atau entreprise. Lebih lengkap tentang ketentuan ini bisa dibaca di sini.
Contoh: mencari (hingga) 1.000 tweets yang memuat kata kunci "bogor"
Objek tweet merupakan data frame/tibble dengan lebih dari 80 variabel/kolom. Silakan tampilkan dengan perintah:
Kita lihat tiga kolom di antaranya:
Keyword/query dapat berupa satu atau beberapa kata, namun hindari keyword yang kompleks. Menurut Twitter, query sebaiknya tidak lebih dari 10 kata. Berikut contoh cara penulisan keyword:
Query | Untuk mencari tweet yang mengandung: |
---|---|
"bogor" | kata "bogor" |
"kota bogor" | kata "kota" dan kata "bogor" (tidak memperhatikan urutan) |
"\"kota bogor\"" | frase "kota bogor" |
"kota OR bogor" | kata "kota" atau kata "bogor" atau keduanya |
"kota -bogor" | kata "kota" tapi tidak memuat kata "bogor" |
"#bogor" | hashtag "bogor" |
"@bogor" | mention "bogor" |
get_timelines()
Menampilkan timeline atau status/tweet terbaru yang pernah di-posting oleh satu atau beberapa user(s). Setiap user akan ditampilkan hingga maksimal 3.200 tweet.
Contoh: Menapilkan timeline dari "nurandi"
Objek yang dihasilkan berupa data frame/tibble dengan lebih dari 80 kolom.
lookup_users()
Menampilkan data detail dari satu atau lebih akun/user(s).
Contoh: Menampilkan detail dari "nurandi"
Objek yang dihasilkan juga merupakan data frame/tibble dengan lebih dari 80 kolom.
Untuk lookup beberapa user(s), input harus berupa vector. Misal:
get_followers()
dan get_friends()
Menampilkan list dari followers (yang mem-follow) dan list dari followings/friends (yang di-follow) oleh akun/user tertentu.
Contoh: Menampilkan list followers dari "nurandi"
Output yang dihasilkan berupa tibble dari user_id.
Selanjutnya, untuk mendapatkan detail dari list user ID followers/friends, kita dapat menggunakan fungsi lookup_users()
. Misal:
Fungsi-fungsi yang kita bahas tadi hanya sebagian dari fitur yang tersedia pada package rtweet. Juga masih banyak parameter yang bisa ditambahkan agar pencarian yang kita lakukan sesuai kebutuhan. Untuk mengetahui fungsi-fungsi tersebut secara detail termasuk parameter yang bisa digunakan, ketik ?
diikuti nama fungsi. Misal ?search_tweets
. Atau, bisa juga pelajari referensi pada laman rtweet.info.
Selamat menambang data :)
Source: https://www.nurandi.id/blog/rtweet-crawling-data-twitter-menggunakan-r/
Enregistrer un commentaire for "Realtime Twitter Feed in Csv Every Minute"