Tweepy: Crawling Data Twitter dengan Library Python

Monica Dessy Amanda
3 min readSep 13, 2020

--

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:

contoh key dan token Twitter API

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 re
consumer_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.

  1. 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:

hasil crawling berdasarkan user timeline

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:

hasil crawling berdasarkan search hashtag

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!

--

--

Responses (1)