Tweepy: Crawling Data Twitter dengan Library Python
Hallo! Pada kesempatan kali ini saya akan menjelaskan proses secara step by step untuk melakukan crawling data tweets pada Twitter. Dengan menggunakan library Python bernama Tweepy. Tutorial ini akan menjelaskan cara crawling data berdasarkan user timeline, dan berdasarkan hashtag.
Step 1: Get Twitter API keys
Sebelum memulai harus dipastikan bahwa anda memiliki akun Twitter dan daftar menjadi akun developer pada link berikut https://developer.twitter.com/ agar mendapat akses Twitter API
Jika sudah, lakukan create app pada link ini https://developer.twitter.com/en/apps dan pastikan input data dengan benar agar tidak terdeteksi spam.
Setelah berhasil, akan diperoleh key dan token akses yang dapat digunakan seperti pada gambar:
Step 2: Install Tweepy
Tweepy merupakan library Python yang dapat mengakses Twitter API. Untuk instalasi dapat dilakukan dengan menuliskan ini pada terminal.
pip install tweepy
Step 3: Coding!
Silahkan buka aplikasi text editor masing-masing. Import libary yang dibutuhkan dan masukan key dan token akses yang sudah diperoleh.
import tweepy
import csv
import reconsumer_key = <your_consumer_key>
consumer_secret = <your_consumer_secret_key>
access_key = <your_access_key>
access_secret = <your_access_secret_key>
Seperti yang sudah disebutkan sebelumnya, pada tutorial ini akan dijelaskan crawling data berdasarkan user timeline, dan search hashtag.
- user timeline
untuk crawling berdasarkan user timeline, data yang keluar adalah data tweet setiap spesifik username yang dicari.
tweets_for_csv = []def get_tweets(username):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth) limit = 5
print('- Username : @'+username) for tweet in tweepy.Cursor(api.user_timeline,
screen_name=username, include_rts=False,
tweet_mode='extended').items(limit):
actualTweet = re.sub(r'\s+', ' ', tweet.full_text)
tweets_for_csv.append(
[username, tweet.created_at, tweet.id, actualTweet])
Fungsi diatas akan mengambil data username yang akan dicari dan memberi output tweet berjumlah 5 untuk setiap username yang diambil dari tweet paling baru pada user timeline.
if __name__ == '__main__':
users = ['infobmkg', 'bnpb_indonesia', 'petabencana',
'bencanaID']
print("\nGet tweet from username ...")
for user in users:
get_tweets(user) outfile = "user-timeline.csv"
with open(outfile, 'w', newline='', encoding='utf-8') as
csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(["username", "datetime", "tweet_id",
"tweet"])
csvwriter.writerows(tweets_for_csv)
print("\nwriting to '" + outfile + "' complete.")
Selain data tweets yang diambil, diperoleh juga data tweet id, dan tanggal tweet tersebut di posting. Hasil outputnya akan terlihat seperti berikut:
2. search hashtag
untuk crawling berdasarkan search hashtag, data yang keluar adalah data tweet setiap spesifik hashtag yang dicari. Hashtag ini diambil dari menu search pada Twitter sehingga tidak tergantung pada username tertentu.
tweets_for_csv = []def get_hashtag(hashtag):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth) limit = 5
print('- Hashtag : '+hashtag)for tweet in tweepy.Cursor(api.search, q=hashtag+'-filter:retweets',
tweet_mode="extended").items(limit):
actualTweet = re.sub(r'\s+', ' ', tweet.full_text)
tweets_for_csv.append(
[hashtag, tweet.created_at, tweet.id, actualTweet])
Fungsi diatas akan mengambil data hashtag yang akan dicari dan memberi output tweet berjumlah 5 untuk setiap hashtag yang diambil dari tweet paling baru pada menu search pada Twitter.
if __name__ == '__main__':
tags = ['#gempa', '#kebakaran', '#banjir', '#tsunami'] print("\nGet tweet from hashtag ...")
for tag in tags:
get_hashtag(tag) outfile = "search-hashtag.csv"
with open(outfile, 'w', newline='', encoding='utf-8') as
csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(["hashtag", "datetime", "tweet_id",
"tweet"])
csvwriter.writerows(tweets_for_csv)
print("\nwriting to '" + outfile + "' complete.")
Selain data tweets yang diambil, diperoleh juga data tweet id, dan tanggal tweet tersebut di posting. Hasil outputnya akan terlihat seperti berikut:
Selesai sudah tutorial step by step untuk crawling data tweets pada Twitter menggunakan library Python bernama Tweepy.
Untuk source code dapat diakses pada link github sebagai berikut: https://github.com/monicamanda/crawling-twitter-tweepy
Jika ada pertanyaan bisa ditanyakan langsung di kolom komentar!