Crawling Twitter dengan Python
Assalamualaikum Warahmatullahi Wabarakatuh
Pada artikel sebelumnya saya sudah sedikit menjelaskan tentang crawling dan scraping. Dan pada artikel ini kita akan mencoba melakukan crawling data pada twitter dengan python. Kembali mengingatkan untuk proses crawling biasanya membutuhkan komunikasi menggunakan Application Programming Interface (API).
Crawling pada Twitter
Twitter menyediakan Free Open API untuk memperbolehkan kita menambang data pada websitenya. Tentu masih banyak website lain yang menyediakan API untuk memperbolehkan kita menambang data, namun untuk saat ini kita akan latihan menggunakan twitter dan semoga kedepannya teman-teman bisa mencoba dengan menggunakan API selain twitter. Sebelum melakukan implementasi crawling pada twitter kita memerlukan API Key yang teregistrasi untuk dapat berinteraksi dengan twitter. Untuk yang belum memiliki API Key bisa ikuti tutorial dibawah ini.
Daftar disini :
Tutorial registrasi:
Crawling Twitter dengan Python
Untuk dapat berkomunikasi dengan API twitter kita akan menggunakan library python yaitu Tweepy. Selain Tweepy masih ada beberapa library python lainnya seperti (Twython, TwitterSeacrh, dan lain-lain). Pada tulisan ini kita akan menggunakan API Search dan API Stream untuk proses crawling twitter.
Langkah awal instal library tweepy
pip install tweepy
Kemudian kita import library
import tweepy
Buat variable untuk memasukkan API Key yang berhasil didapatkan ketika mendaftar, API Key digunakan untuk proses autentikasi.
consumer_key = “ “
consumer_secret = “ “
access_token = “ “
access_token_secret = “ “auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth,wait_on_rate_limit=True)
- API Search
for tweet in tweepy.Cursor(api.search,q=”#natuna”,lang=”id”, since=”2020–01–10").items():
print (tweet.created_at, tweet.text)
csvWriter.writerow([tweet.created_at, tweet.text.encode(‘utf-8’)])
Baris code diatas menggunakan API Search untuk mencari keyword dengan hastagh natuna yang berbahasa indonesia dari tanggal 10 januari 2020. Kemudian kita ambil data berupa tanggal dan isi tweet kemudian simpan ke dalam file CSV.
- API Stream
class StdOutListener(StreamListener):
def on_status(self, status):
record = {‘Text’: status.text, ‘Created At’: status.created_at}
print(record)
stream = Stream(auth, StdOutListener())
stream.filter(track=[‘yogyakarta’])
Baris code diatas menggunakan API Stream untuk mencari keyword tweet yang mengandung kata Yogyakarta kemudian kita tampilkan output untuk data berupa tanggal dan isi tweet.
Perbedaan crawling menggunakan API search dan stream.
API Search
The Twitter’s standard search API (search/tweets) allows simple queries against the indices of recent or popular Tweets and behaves similarly to, but not exactly like the Search UI feature available in Twitter mobile or web clients. The Twitter Search API searches against a sampling of recent Tweets published in the past 7 days.
API Stream
The Twitter API platform offers two options for streaming realtime Tweets. Each option offers a varying number of filters and filtering capabilities.
Secara garis besar perbedaan dari kedua method API tersebut adalah:
Search dapat mengambil data mulai dari waktu yang sudah lewat, dan koneksi berhenti ketika data berhasil didapatkan. Sedangkan stream hanya dapat mengambil waktu secara real-time dan koneksi akan terus berjalan hingga ada perintah untuk memutuskan koneksi.
Menggunakan Python
Untuk dapat menggunakan python kita akan menggunakan dua cara, dan saya berharap ketika teman-teman membaca artikel ini bisa langsung dipraktikan.
- Menggunakan local python yang sudah terinstal di komputer
Download Python :
Tutorial install :
Contoh code :
2. Menggunakan Google Colaboratory
Tutorial colab :
Contoh code :
Catatan: Biasanya untuk proses verifikasi oleh twitter membutuhkan waktu, dan update 2019 beberapa teman yang baru mendaftar twitter harus menunggu beberapa hari untuk melakukan verifikasi.
Mudah-mudahan artikel ini bermanfaat buat teman-teman, jangan lupa ilmunya di share ke orang lain.
Jazakumullah khairan katsiran, Waalaikumussalam warahmatullahi wabarakatuh
Referensi:
https://www.packtpub.com/big-data-and-business-intelligence/mastering-social-media-mining-python
https://www.cabotsolutions.com/2016/11/a-detailed-overview-of-web-crawlers