Collecting Data from Twitter

Mr. I
kasta
Published in
4 min readDec 10, 2017

Makassar, Irsyad — Sudah lama sebenarnya mau posting atau nulis tentang Collecting Data dari Social Media atau crawling. Sejak kenal istilah ini tahun 2014 lalu sudah mulai aktif belajar tentang crawling, text mining, NLP, dan sejenis — jenisnya. BTW artikel kali ini sesuai dengan cara belajar saya yah. 😊 Akhir — akhir ini sangat booming mengenai big data. Saya pribadi mulai mendengarnya tahun 2014 dari teman — teman di CCI tepatnya mahasiswa MBTI. Nah big data itu apa? Pernah di tahun 2017 awal ketika saya masih bekerja di salah satu perusahaan asuransi. Jadi saya satu team untuk develop core insurance base BPM ada 4 orang programmer, 2 orang specialist, dan 2 orang AS/400 specialist. Kebetulan tim saya ada dari Cina satu orang jadi kami banyak mengobrol hal — hal gak jelas sebenarnya. Bukan masalah IT malahan tapi lebih ke daily activity.

Sampailah pada satu ketika membahas masalah IT. Entah ke mana arah pembicaraan tapi tiba — tiba bahas masalah big data. Namanya Yao. Yao memang suka bercanda, saya tau kemampuan dia gak sesempit celetukan dia tentang big data. “Big data is data big. Like this, this, and this.” Setengah ketawa sambil menunjuk bangunan yang ada di dekat kantor. Salah satu teman saya malah menanggapinya serius. Langsung mengecek internet buka google translate. Ya iyalah kalau artiin big data pake translator mah jadinya data dalam jumlah banyak. Berdasarkan ilmu yang saya ketahui dari teman — teman dan senior — senior UKM di MBTI, big data gak cuma datanya yang banyak tapi memiliki percepatan data, dan keberagaman data. Singkatnya seperti itulah big data.

Nah pada waktu itu saya ingin belajar tentang big data, tapi gimana caranya belajar datanya aja gak punya. Akhirnya ada teman yang ngasih tau tentang crawling. Browsing lah saya tentang crawling ini. Apa itu crawling? Nah ini sekedar pemahaman saya saja, crawling yang saya maksud adalah mengumpulkan data dari social media misalnya Twitter. Data apa yang dikumpulkan? Yah banyak, Twitter telah menyediakan data apa saja yang dapat diconsume atau digunakan oleh pengguna lain. Data tersebut nantinya akan diolah oleh Data Scientist menjadi sebuah informasi yang dapat digunakan untuk beberapa hal.

Prerequest

Pertama dan utama adalah Install python versi terbaru. Untuk mengumpulkan data dari Twitter menggunakan Python. Kita berasumsi saja bahwa sistem operasi kita sama yaitu windows. Terserah mau pakai versi 7, versi 8, versi 9 (a.k.a 8.1), versi 10, atau versi 11 jika punya. Nih saya bantu carikan tutorial untuk installasi python lengkap dengan pipnya. Pastikan memiliki editor, mau pake Notepad juga gak masalah, tapi saya sarangkan pakai Sublime Text 3 atau Visual Studio Code biar hidup lebih berwarna dan berarti. Jika sudah terinstall, perhatikan artikel sebelumnya. Baca dulu artikel tersebut untuk mengetahui kebutuhan selain bahasa pemrograman.

Coding Time

Agar dapat berinteraksi dengan Twitter atau API Twitter, kita membutuhkan library Python yang mengimplementasikan pemanggilan API Twitter. Sebenarnya ada banyak pilihan untuk library Twitter baik dengan menggunakan Python maupun menggunakan bahasa pemrograman lain. Silakan kunjungin laman https://developer.twitter.com/en/docs/developer-utilities/twitter-libraries untuk informasi lebih lanjut mengenai library — library Twitter yang tersedia. Sebenarnya library tersebut tidak dibuat oleh Twitter melainka oleh orang lain atau komunitas open source. Dari sekian banyak pilihan, saya paling sering menggunakan Tweepy. Selain penggunaannya lebih mudah, user atau penggunanya juga banyak sehingga memudahkan untuk memperbaiki jika terjadi error. Berikut syntax untuk menginstall tweep di CMD.

pip install tweepy

Setelah install tweepy, buatlah sebuah file python twitter_client.py dengan codingan sebagai berikut.

import os
import sys
from tweepy import API
from tweepy import OAuthHandler
def get_twitter_auth():
try:
consumer_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_token = "xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
except KeyError:
sys.stderr.write("TWITTER_* environment variables not set\n")
sys.exit(1)
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
return auth
def get_twitter_client():
auth = get_twitter_auth()
client = API(auth)
return client
Setelah menulis kode di atas silakan jalankan dengan menggunakan perintah berikut,python twitter_client.pyPerintah tersebut di jalankan pada CMD tepat pada direktori penyimpanan file tersebut. Code di atas merupakan authentikasi ke Twitter. Langkah ini merupakan langkah pertama dan paling penting untuk berinteraksi dengan Twitter. Code tersebut sama halnya dengan melakukan login pada aplikasi Twitter yang memasukan username dan password, namun bedanya jika pada codingan harus dengan memasukan consumer dan access. Setelah menjalankan file di atas, kita sudah dapat mengambil data dari Twitter.Getting Tweets From TimelineBegitu otentikasi atau authentication client sudah ada, maka kita dapat melakukan pengunduhan data pada Twitter. Ketiklah code berikut dan simpan dengan nama twitter_get_home_timeline.pyimport json
from tweepy import Cursor
from twitter_client import get_twitter_client
if __name__ == '__main__':
client = get_twitter_client()
with open('home_timeline.jsonl', 'w') as f:
for page in Cursor(client.home_timeline, count=200, include_rts=True).pages(4):
for status in page:
f.write(json.dumps(status._json)+"\n")

Untuk menjalankan code di atas gunakan perintah berikut pada command prompt.
python twitter_get_home_timeline.pyGetting Tweets from User TimelineNah sekarang kita coba untuk mengambil tweet dari spesific user. Katakanlah seorang public figur yang aktif di Twitter ataupun yang aktif di real world. Ada banyak public figur yang menggunakan Twitter untuk berinteraksi dengan fansnya, masyarakat, atau suatu komunitas. Yang dapat kita jadikan studi kasus adalah jurnalis senior Najwa Shihab (@NajwaShihab) dan Wali Kota Bandung Ridwan Kamil (@ridwankamil). Nah untuk apa kita kepo tentang user - user tersebut. Sebenarnya banyak hal yang dapat dilakukan, misalnya untuk mengetahui pengaruhnya dan bagaimana interkasinya dengan user. Data ini dapat digunakan untuk parpol sebagai salah satu bahan pertimbangan jika dilihat dari sudut ketenaran di social media khususnya Twitter.Berikut source codenya dan simpan file tersebut denngan nama twitter_get_user_timeline.py.import sys
import json
from tweepy import Cursor
from twitter_client import get_twitter_client
def usage():
print("Usage:")
print("python {} <username>".format(sys.argv[0]))
if __name__ == '__main__':
if len(sys.argv) != 2:
usage()
sys.exit(1)
user = sys.argv[1]
client = get_twitter_client()
fname = "user_timeline_{}.jsonl".format(user)
with open(fname, 'w') as f:
for page in Cursor(client.user_timeline, screen_name=user, count=200).pages(16):
for status in page:
f.write(json.dumps(status._json)+"\n")
Untuk menjalankan source code tersebut gunakan syntax berikut pada command promptpython twitter_get_user_timeline.py <username>Misalnya python twitter_get_user_timeline.py NajwaShihab atau python twitter_get_user_timeline.py ridwankamil

--

--

Mr. I
kasta
Editor for

Code using various programming language commonly based on JVM (Java, Scala, Groovy) with DBMS (Oracle, PostgreSQL & MySQL)